authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2024-10-15 02:23:44+01:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2024-10-19 19:15:23+01:00
logcbfe00b17df276fcf89faa1bb4380ed7f43156a0
tree43587b37835b174a622d2dae237fbefea24d0e1b
parent4be0cf30fc10420c2b5fa97a3b25a07b7a0ce7f3
signaturelock-open Commit is signed but in an unrecognized format.

std.zig.render: fix `callconv(.Inline)` -> `inline fn` promotion


1 files changed, 4 insertions(+), 2 deletions(-)

lib/std/zig/render.zig+4-2
......@@ -184,8 +184,9 @@ fn renderMember(
184184 tree.extraData(datas[fn_proto].lhs, Ast.Node.FnProtoOne).callconv_expr
185185 else
186186 tree.extraData(datas[fn_proto].lhs, Ast.Node.FnProto).callconv_expr;
187 // Keep in sync with logic in `renderFnProto`. Search this file for the marker PROMOTE_CALLCONV_INLINE
187188 if (callconv_expr != 0 and tree.nodes.items(.tag)[callconv_expr] == .enum_literal) {
188 if (mem.eql(u8, "Inline", tree.tokenSlice(main_tokens[callconv_expr]))) {
189 if (mem.eql(u8, "@\"inline\"", tree.tokenSlice(main_tokens[callconv_expr]))) {
189190 try ais.writer().writeAll("inline ");
190191 }
191192 }
......@@ -1839,7 +1840,8 @@ fn renderFnProto(r: *Render, fn_proto: Ast.full.FnProto, space: Space) Error!voi
18391840 try renderToken(r, section_rparen, .space); // )
18401841 }
18411842
1842 const is_callconv_inline = mem.eql(u8, "Inline", tree.tokenSlice(tree.nodes.items(.main_token)[fn_proto.ast.callconv_expr]));
1843 // Keep in sync with logic in `renderMember`. Search this file for the marker PROMOTE_CALLCONV_INLINE
1844 const is_callconv_inline = mem.eql(u8, "@\"inline\"", tree.tokenSlice(tree.nodes.items(.main_token)[fn_proto.ast.callconv_expr]));
18431845 const is_declaration = fn_proto.name_token != null;
18441846 if (fn_proto.ast.callconv_expr != 0 and !(is_declaration and is_callconv_inline)) {
18451847 const callconv_lparen = tree.firstToken(fn_proto.ast.callconv_expr) - 1;