authorgravatar for me@tadeo.caTadeo Kondrak <me@tadeo.ca> 2021-01-11 07:56:48-07:00
committergravatar for me@tadeo.caTadeo Kondrak <me@tadeo.ca> 2021-02-10 20:06:11-07:00
log9c797fe3ac3a377caa01bdbd74b984d11b53398e
tree225e9341a99ff908f3fd7e2b5ffa124dbe68785a
parent61bcac108cecba0ab8e1b442bd71c51306c0e9fc
signaturelock-open Commit is signed but in an unrecognized format.

std.zig: reformat inline fn to callconv(.Inline)


3 files changed, 21 insertions(+), 3 deletions(-)

lib/std/zig/ast.zig+9
...@@ -1357,6 +1357,7 @@ pub const Node = struct {...@@ -1357,6 +1357,7 @@ pub const Node = struct {
1357 extern_export_inline_token: TokenIndex,1357 extern_export_inline_token: TokenIndex,
1358 is_extern_prototype: void, // TODO: Remove once extern fn rewriting is1358 is_extern_prototype: void, // TODO: Remove once extern fn rewriting is
1359 is_async: void, // TODO: remove once async fn rewriting is1359 is_async: void, // TODO: remove once async fn rewriting is
1360 is_inline: void, // TODO: remove once inline fn rewriting is
1360 });1361 });
13611362
1362 pub const RequiredFields = struct {1363 pub const RequiredFields = struct {
...@@ -1523,6 +1524,14 @@ pub const Node = struct {...@@ -1523,6 +1524,14 @@ pub const Node = struct {
1523 self.setTrailer(.is_async, value);1524 self.setTrailer(.is_async, value);
1524 }1525 }
15251526
1527 pub fn getIsInline(self: *const FnProto) ?void {
1528 return self.getTrailer(.is_inline);
1529 }
1530
1531 pub fn setIsInline(self: *FnProto, value: void) void {
1532 self.setTrailer(.is_inline, value);
1533 }
1534
1526 fn getTrailer(self: *const FnProto, comptime field: TrailerFlags.FieldEnum) ?TrailerFlags.Field(field) {1535 fn getTrailer(self: *const FnProto, comptime field: TrailerFlags.FieldEnum) ?TrailerFlags.Field(field) {
1527 const trailers_start = @alignCast(1536 const trailers_start = @alignCast(
1528 @alignOf(ParamDecl),1537 @alignOf(ParamDecl),
lib/std/zig/parse.zig+9-2
...@@ -493,9 +493,15 @@ const Parser = struct {...@@ -493,9 +493,15 @@ const Parser = struct {
493 extern_export_inline_token: ?TokenIndex = null,493 extern_export_inline_token: ?TokenIndex = null,
494 lib_name: ?*Node = null,494 lib_name: ?*Node = null,
495 }) !?*Node {495 }) !?*Node {
496 // TODO: Remove once extern/async fn rewriting is496 // TODO: Remove once extern/async/inline fn rewriting is
497 var is_async: ?void = null;
498 var is_extern_prototype: ?void = null;497 var is_extern_prototype: ?void = null;
498 var is_async: ?void = null;
499 var is_inline: ?void = null;
500 if (fields.extern_export_inline_token != null and
501 p.token_ids[fields.extern_export_inline_token.?] == .Keyword_inline)
502 {
503 is_inline = {};
504 }
499 const cc_token: ?TokenIndex = blk: {505 const cc_token: ?TokenIndex = blk: {
500 if (p.eatToken(.Keyword_extern)) |token| {506 if (p.eatToken(.Keyword_extern)) |token| {
501 is_extern_prototype = {};507 is_extern_prototype = {};
...@@ -573,6 +579,7 @@ const Parser = struct {...@@ -573,6 +579,7 @@ const Parser = struct {
573 .callconv_expr = callconv_expr,579 .callconv_expr = callconv_expr,
574 .is_extern_prototype = is_extern_prototype,580 .is_extern_prototype = is_extern_prototype,
575 .is_async = is_async,581 .is_async = is_async,
582 .is_inline = is_inline,
576 });583 });
577 std.mem.copy(Node.FnProto.ParamDecl, fn_proto_node.params(), params);584 std.mem.copy(Node.FnProto.ParamDecl, fn_proto_node.params(), params);
578585
lib/std/zig/render.zig+3-1
...@@ -1558,7 +1558,7 @@ fn renderExpression(...@@ -1558,7 +1558,7 @@ fn renderExpression(
1558 }1558 }
15591559
1560 if (fn_proto.getExternExportInlineToken()) |extern_export_inline_token| {1560 if (fn_proto.getExternExportInlineToken()) |extern_export_inline_token| {
1561 if (fn_proto.getIsExternPrototype() == null)1561 if (fn_proto.getIsExternPrototype() == null and fn_proto.getIsInline() == null)
1562 try renderToken(tree, ais, extern_export_inline_token, Space.Space); // extern/export/inline1562 try renderToken(tree, ais, extern_export_inline_token, Space.Space); // extern/export/inline
1563 }1563 }
15641564
...@@ -1664,6 +1664,8 @@ fn renderExpression(...@@ -1664,6 +1664,8 @@ fn renderExpression(
1664 try ais.writer().writeAll("callconv(.C) ");1664 try ais.writer().writeAll("callconv(.C) ");
1665 } else if (fn_proto.getIsAsync() != null) {1665 } else if (fn_proto.getIsAsync() != null) {
1666 try ais.writer().writeAll("callconv(.Async) ");1666 try ais.writer().writeAll("callconv(.Async) ");
1667 } else if (fn_proto.getIsInline() != null) {
1668 try ais.writer().writeAll("callconv(.Inline) ");
1667 }1669 }
16681670
1669 switch (fn_proto.return_type) {1671 switch (fn_proto.return_type) {