diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index 08e9c283fd..9359aa2cd2 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -107,6 +107,21 @@ test "zig fmt: rewrite suspend without block expression" { ); } +// TODO Remove this after zig 0.9.0 is released. +test "zig fmt: rewrite @byteOffsetOf to @offsetOf" { + try testTransform( + \\fn foo() void { + \\ @byteOffsetOf(Foo, "bar"); + \\} + \\ + , + \\fn foo() void { + \\ @offsetOf(Foo, "bar"); + \\} + \\ + ); +} + test "zig fmt: simple top level comptime block" { try testCanonical( \\// line comment diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig index 527298d7c0..95b5c7a8d8 100644 --- a/lib/std/zig/render.zig +++ b/lib/std/zig/render.zig @@ -1211,7 +1211,12 @@ fn renderBuiltinCall( ) Error!void { const token_tags = tree.tokens.items(.tag); - try renderToken(ais, tree, builtin_token, .none); // @name + const builtin_name = tokenSliceForRender(tree, builtin_token); + if (mem.eql(u8, builtin_name, "@byteOffsetOf")) { + try ais.writer().writeAll("@offsetOf"); + } else { + try renderToken(ais, tree, builtin_token, .none); // @name + } if (params.len == 0) { try renderToken(ais, tree, builtin_token + 1, .none); // (