Commit 2761cc8be0

Justus Klausecker <justus@klausecker.de>
2025-08-13 11:42:58
zig fmt: add tests for cast builtin canonicalization
1 parent be51d69
Changed files (1)
lib
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}