diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index 9991f334a1e8c5d5c6133031dda653081f9adbe1..62d9d7a073df6a83bf8e5832ef29f42963e5d76b 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}