authorgravatar for techatrix@mailbox.orgTechatrix <techatrix@mailbox.org> 2023-01-16 13:04:03+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2023-01-16 14:04:03+02:00
log32544ed56c8049b27a8be75871d5a5d19fed0037
treead5de3a7436d3e64f4c805ce5e892791d34a0142
parentd389dba04f66deb3dd1831ed96b6843a9eee1309
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

swap align and callconv in function typeName


2 files changed, 22 insertions(+), 9 deletions(-)

src/type.zig+6-6
...@@ -1689,14 +1689,14 @@ pub const Type = extern union {...@@ -1689,14 +1689,14 @@ pub const Type = extern union {
1689 try writer.writeAll("...");1689 try writer.writeAll("...");
1690 }1690 }
1691 try writer.writeAll(") ");1691 try writer.writeAll(") ");
1692 if (payload.alignment != 0) {
1693 try writer.print("align({d}) ", .{payload.alignment});
1694 }
1692 if (payload.cc != .Unspecified) {1695 if (payload.cc != .Unspecified) {
1693 try writer.writeAll("callconv(.");1696 try writer.writeAll("callconv(.");
1694 try writer.writeAll(@tagName(payload.cc));1697 try writer.writeAll(@tagName(payload.cc));
1695 try writer.writeAll(") ");1698 try writer.writeAll(") ");
1696 }1699 }
1697 if (payload.alignment != 0) {
1698 try writer.print("align({d}) ", .{payload.alignment});
1699 }
1700 ty = payload.return_type;1700 ty = payload.return_type;
1701 continue;1701 continue;
1702 },1702 },
...@@ -2084,14 +2084,14 @@ pub const Type = extern union {...@@ -2084,14 +2084,14 @@ pub const Type = extern union {
2084 try writer.writeAll("...");2084 try writer.writeAll("...");
2085 }2085 }
2086 try writer.writeAll(") ");2086 try writer.writeAll(") ");
2087 if (fn_info.alignment != 0) {
2088 try writer.print("align({d}) ", .{fn_info.alignment});
2089 }
2087 if (fn_info.cc != .Unspecified) {2090 if (fn_info.cc != .Unspecified) {
2088 try writer.writeAll("callconv(.");2091 try writer.writeAll("callconv(.");
2089 try writer.writeAll(@tagName(fn_info.cc));2092 try writer.writeAll(@tagName(fn_info.cc));
2090 try writer.writeAll(") ");2093 try writer.writeAll(") ");
2091 }2094 }
2092 if (fn_info.alignment != 0) {
2093 try writer.print("align({d}) ", .{fn_info.alignment});
2094 }
2095 if (fn_info.return_type.tag() == .generic_poison) {2095 if (fn_info.return_type.tag() == .generic_poison) {
2096 try writer.writeAll("anytype");2096 try writer.writeAll("anytype");
2097 } else {2097 } else {
test/behavior/typename.zig+16-3
...@@ -69,9 +69,22 @@ test "basic" {...@@ -69,9 +69,22 @@ test "basic" {
69 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO69 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
70 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO70 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
7171
72 try expectEqualStrings(@typeName(i64), "i64");72 try expectEqualStrings("i64", @typeName(i64));
73 try expectEqualStrings(@typeName(*usize), "*usize");73 try expectEqualStrings("*usize", @typeName(*usize));
74 try expectEqualStrings(@typeName([]u8), "[]u8");74 try expectEqualStrings("[]u8", @typeName([]u8));
75
76 try expectEqualStrings("fn() void", @typeName(fn () void));
77 try expectEqualStrings("fn(u32) void", @typeName(fn (u32) void));
78 try expectEqualStrings("fn(u32) void", @typeName(fn (a: u32) void));
79
80 try expectEqualStrings("fn(comptime u32) void", @typeName(fn (comptime u32) void));
81 try expectEqualStrings("fn(noalias []u8) void", @typeName(fn (noalias []u8) void));
82
83 try expectEqualStrings("fn() align(32) void", @typeName(fn () align(32) void));
84 try expectEqualStrings("fn() callconv(.C) void", @typeName(fn () callconv(.C) void));
85 try expectEqualStrings("fn() align(32) callconv(.C) void", @typeName(fn () align(32) callconv(.C) void));
86 try expectEqualStrings("fn(...) align(32) callconv(.C) void", @typeName(fn (...) align(32) callconv(.C) void));
87 try expectEqualStrings("fn(u32, ...) align(32) callconv(.C) void", @typeName(fn (u32, ...) align(32) callconv(.C) void));
75}88}
7689
77test "top level decl" {90test "top level decl" {