diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index 9991f334a1..62d9d7a073 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -6056,6 +6056,25 @@ test "zig fmt: indentation of comments within catch, else, orelse" { ); } +test "zig fmt: canonicalize cast builtins" { + try testTransform( + \\const foo = @alignCast(@ptrCast(bar)); + \\const baz = @constCast(@ptrCast(@addrSpaceCast(@volatileCast(@alignCast(bar))))); + \\ + , + \\const foo = @ptrCast(@alignCast(bar)); + \\const baz = @ptrCast(@alignCast(@addrSpaceCast(@constCast(@volatileCast(bar))))); + \\ + ); +} + +test "zig fmt: do not canonicalize invalid cast builtins" { + try testCanonical( + \\const foo = @alignCast(@volatileCast(@ptrCast(@alignCast(bar)))); + \\ + ); +} + test "recovery: top level" { try testError( \\test "" {inline}