aboutsummaryrefslogtreecommitdiff
path: root/src/value.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-07-07 14:52:28 -0400
committerGitHub <noreply@github.com>2022-07-07 14:52:28 -0400
commit0c78ece1c95164f4a321f5705b20896415336d02 (patch)
treedff294a61dc2c004b358f49062c551892a426770 /src/value.zig
parent6f17be063d37f5ecd9552479e65428a5c60d9152 (diff)
parent5007f727e5a2631ce55e9b44f93e69a9cb82cde8 (diff)
downloadzig-0c78ece1c95164f4a321f5705b20896415336d02.tar.gz
zig-0c78ece1c95164f4a321f5705b20896415336d02.zip
Merge pull request #12016 from Vexu/stage2-compile-errors
Stage2 compile error improvements
Diffstat (limited to 'src/value.zig')
-rw-r--r--src/value.zig8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/value.zig b/src/value.zig
index 90cdf82834..04999c778a 100644
--- a/src/value.zig
+++ b/src/value.zig
@@ -111,6 +111,7 @@ pub const Value = extern union {
int_i64,
int_big_positive,
int_big_negative,
+ runtime_int,
function,
extern_fn,
variable,
@@ -304,6 +305,7 @@ pub const Value = extern union {
.int_type => Payload.IntType,
.int_u64 => Payload.U64,
.int_i64 => Payload.I64,
+ .runtime_int => Payload.U64,
.function => Payload.Function,
.variable => Payload.Variable,
.decl_ref_mut => Payload.DeclRefMut,
@@ -483,6 +485,7 @@ pub const Value = extern union {
},
.int_type => return self.copyPayloadShallow(arena, Payload.IntType),
.int_u64 => return self.copyPayloadShallow(arena, Payload.U64),
+ .runtime_int => return self.copyPayloadShallow(arena, Payload.U64),
.int_i64 => return self.copyPayloadShallow(arena, Payload.I64),
.int_big_positive, .int_big_negative => {
const old_payload = self.cast(Payload.BigInt).?;
@@ -762,6 +765,7 @@ pub const Value = extern union {
.int_i64 => return std.fmt.formatIntValue(val.castTag(.int_i64).?.data, "", options, out_stream),
.int_big_positive => return out_stream.print("{}", .{val.castTag(.int_big_positive).?.asBigInt()}),
.int_big_negative => return out_stream.print("{}", .{val.castTag(.int_big_negative).?.asBigInt()}),
+ .runtime_int => return out_stream.writeAll("[runtime value]"),
.function => return out_stream.print("(function decl={d})", .{val.castTag(.function).?.data.owner_decl}),
.extern_fn => return out_stream.writeAll("(extern function)"),
.variable => return out_stream.writeAll("(variable)"),
@@ -1077,6 +1081,8 @@ pub const Value = extern union {
.int_big_positive => return val.castTag(.int_big_positive).?.asBigInt(),
.int_big_negative => return val.castTag(.int_big_negative).?.asBigInt(),
+ .runtime_int => return BigIntMutable.init(&space.limbs, val.castTag(.runtime_int).?.data).toConst(),
+
.undef => unreachable,
.lazy_align => {
@@ -1132,6 +1138,8 @@ pub const Value = extern union {
.int_big_positive => return val.castTag(.int_big_positive).?.asBigInt().to(u64) catch null,
.int_big_negative => return val.castTag(.int_big_negative).?.asBigInt().to(u64) catch null,
+ .runtime_int => return val.castTag(.runtime_int).?.data,
+
.undef => unreachable,
.lazy_align => {