From 7e07f3d4f95f9e7a0d95ee7b9335798eccb470c7 Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Fri, 12 Aug 2022 14:47:54 -0700 Subject: [PATCH] stage2 astgen: Use `rl` semantics for `@Type` Resolves #12430. --- src/AstGen.zig | 3 ++- test/behavior.zig | 1 + test/behavior/bugs/12430.zig | 11 +++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 test/behavior/bugs/12430.zig diff --git a/src/AstGen.zig b/src/AstGen.zig index af77cdacc4..1151ed60da 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -7676,7 +7676,8 @@ fn builtinCall( } }, }); gz.instructions.appendAssumeCapacity(new_index); - return indexToRef(new_index); + const result = indexToRef(new_index); + return rvalue(gz, rl, result, node); }, .panic => { try emitDbgNode(gz, node); diff --git a/test/behavior.zig b/test/behavior.zig index e9c4ec779b..40f8ca0fb3 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -84,6 +84,7 @@ test { _ = @import("behavior/bugs/11213.zig"); _ = @import("behavior/bugs/12003.zig"); _ = @import("behavior/bugs/12033.zig"); + _ = @import("behavior/bugs/12430.zig"); _ = @import("behavior/byteswap.zig"); _ = @import("behavior/byval_arg_var.zig"); _ = @import("behavior/call.zig"); diff --git a/test/behavior/bugs/12430.zig b/test/behavior/bugs/12430.zig new file mode 100644 index 0000000000..cbf1658b1c --- /dev/null +++ b/test/behavior/bugs/12430.zig @@ -0,0 +1,11 @@ +const std = @import("std"); + +test { + const T = comptime b: { + break :b @Type(.{ .Int = .{ + .signedness = .unsigned, + .bits = 8, + } }); + }; + try std.testing.expect(T == u8); +}