diff --git a/src/type.zig b/src/type.zig index 2481423cb0..4c56a7e167 100644 --- a/src/type.zig +++ b/src/type.zig @@ -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 { diff --git a/test/behavior/typename.zig b/test/behavior/typename.zig index 3f9adf2446..92dc428903 100644 --- a/test/behavior/typename.zig +++ b/test/behavior/typename.zig @@ -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" {