swap align and callconv in function typeName

This commit is contained in:
Techatrix 2023-01-16 13:04:03 +01:00 committed by GitHub
parent d389dba04f
commit 32544ed56c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 9 deletions

View File

@ -1689,14 +1689,14 @@ pub const Type = extern union {
try writer.writeAll("...");
}
try writer.writeAll(") ");
if (payload.alignment != 0) {
try writer.print("align({d}) ", .{payload.alignment});
}
if (payload.cc != .Unspecified) {
try writer.writeAll("callconv(.");
try writer.writeAll(@tagName(payload.cc));
try writer.writeAll(") ");
}
if (payload.alignment != 0) {
try writer.print("align({d}) ", .{payload.alignment});
}
ty = payload.return_type;
continue;
},
@ -2084,14 +2084,14 @@ pub const Type = extern union {
try writer.writeAll("...");
}
try writer.writeAll(") ");
if (fn_info.alignment != 0) {
try writer.print("align({d}) ", .{fn_info.alignment});
}
if (fn_info.cc != .Unspecified) {
try writer.writeAll("callconv(.");
try writer.writeAll(@tagName(fn_info.cc));
try writer.writeAll(") ");
}
if (fn_info.alignment != 0) {
try writer.print("align({d}) ", .{fn_info.alignment});
}
if (fn_info.return_type.tag() == .generic_poison) {
try writer.writeAll("anytype");
} else {

View File

@ -69,9 +69,22 @@ test "basic" {
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
try expectEqualStrings(@typeName(i64), "i64");
try expectEqualStrings(@typeName(*usize), "*usize");
try expectEqualStrings(@typeName([]u8), "[]u8");
try expectEqualStrings("i64", @typeName(i64));
try expectEqualStrings("*usize", @typeName(*usize));
try expectEqualStrings("[]u8", @typeName([]u8));
try expectEqualStrings("fn() void", @typeName(fn () void));
try expectEqualStrings("fn(u32) void", @typeName(fn (u32) void));
try expectEqualStrings("fn(u32) void", @typeName(fn (a: u32) void));
try expectEqualStrings("fn(comptime u32) void", @typeName(fn (comptime u32) void));
try expectEqualStrings("fn(noalias []u8) void", @typeName(fn (noalias []u8) void));
try expectEqualStrings("fn() align(32) void", @typeName(fn () align(32) void));
try expectEqualStrings("fn() callconv(.C) void", @typeName(fn () callconv(.C) void));
try expectEqualStrings("fn() align(32) callconv(.C) void", @typeName(fn () align(32) callconv(.C) void));
try expectEqualStrings("fn(...) align(32) callconv(.C) void", @typeName(fn (...) align(32) callconv(.C) void));
try expectEqualStrings("fn(u32, ...) align(32) callconv(.C) void", @typeName(fn (u32, ...) align(32) callconv(.C) void));
}
test "top level decl" {