diff --git a/lib/std/zig/Ast/Render.zig b/lib/std/zig/Ast/Render.zig index facf828e60..6ea9bfdbef 100644 --- a/lib/std/zig/Ast/Render.zig +++ b/lib/std/zig/Ast/Render.zig @@ -3673,7 +3673,7 @@ fn tokenSliceForRender(tree: Ast, token_index: Ast.TokenIndex) []const u8 { return ret; } -fn writeStringLiteralAsIdentifier(r: *Render, token_index: Ast.TokenIndex) !usize { +fn writeStringLiteralAsIdentifier(r: *Render, token_index: Ast.TokenIndex) Error!usize { const tree = r.tree; const ais = r.ais; assert(tree.tokenTag(token_index) == .string_literal); @@ -3681,12 +3681,11 @@ fn writeStringLiteralAsIdentifier(r: *Render, token_index: Ast.TokenIndex) !usiz const unquoted = lexeme[1..][0 .. lexeme.len - 2]; if (std.zig.isValidId(unquoted)) { try ais.writeAll(unquoted); - return unquoted.len; } else { try ais.writeByte('@'); try ais.writeAll(lexeme); - return lexeme.len + 1; } + return lexeme.len; } fn hasSameLineComment(tree: Ast, token_index: Ast.TokenIndex) bool { diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index 32853207d9..1623f6bb3f 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -6777,6 +6777,19 @@ test "zig fmt: canonicalize stray backslashes in identifiers" { ); } +test "zig fmt: asm_legacy conversion with quoted identifier" { + try testTransform( + \\const a = asm (x :: [L] "" (q) : ""); + , + \\const a = asm (x + \\ : + \\ : [L] "" (q), + \\ : .{ .@"" = true } + \\); + \\ + ); +} + test "recovery: top level" { try testError( \\test "" {inline}