authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2024-06-19 00:31:28+01:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2024-06-19 03:43:13+01:00
log1fdf13a14825d6e1bd247754e3677cf546ee4020
treec8ec344a62ca3940af2807b7cf2de5300552fc8c
parent5f2bdafa39255234381076d4095140f922d21577

AstGen: error for redundant `@inComptime()`


3 files changed, 13 insertions(+), 2 deletions(-)

lib/std/zig/AstGen.zig+6-1
......@@ -9310,7 +9310,6 @@ fn builtinCall(
93109310 .frame => return rvalue(gz, ri, try gz.addNodeExtended(.frame, node), node),
93119311 .frame_address => return rvalue(gz, ri, try gz.addNodeExtended(.frame_address, node), node),
93129312 .breakpoint => return rvalue(gz, ri, try gz.addNodeExtended(.breakpoint, node), node),
9313 .in_comptime => return rvalue(gz, ri, try gz.addNodeExtended(.in_comptime, node), node),
93149313
93159314 .type_info => return simpleUnOpType(gz, scope, ri, node, params[0], .type_info),
93169315 .size_of => return simpleUnOpType(gz, scope, ri, node, params[0], .size_of),
......@@ -9353,6 +9352,12 @@ fn builtinCall(
93539352 .truncate => return typeCast(gz, scope, ri, node, params[0], .truncate, builtin_name),
93549353 // zig fmt: on
93559354
9355 .in_comptime => if (gz.is_comptime) {
9356 return astgen.failNode(node, "redundant '@inComptime' in comptime scope", .{});
9357 } else {
9358 return rvalue(gz, ri, try gz.addNodeExtended(.in_comptime, node), node);
9359 },
9360
93569361 .Type => {
93579362 const operand = try expr(gz, scope, .{ .rl = .{ .coerced_ty = .type_info_type } }, params[0]);
93589363
test/behavior/eval.zig-1
......@@ -1711,7 +1711,6 @@ test "@inComptime" {
17111711 }
17121712 };
17131713 try expectEqual(false, @inComptime());
1714 try expectEqual(true, comptime @inComptime());
17151714 try expectEqual(false, S.inComptime());
17161715 try expectEqual(true, comptime S.inComptime());
17171716}
test/cases/compile_errors/redundant_in_comptime.zig created+7
......@@ -0,0 +1,7 @@
1comptime {
2 _ = @inComptime();
3}
4
5// error
6//
7// :2:9: error: redundant '@inComptime' in comptime scope