Commit 1fdf13a148
Changed files (3)
lib
std
zig
test
behavior
cases
compile_errors
lib/std/zig/AstGen.zig
@@ -9310,7 +9310,6 @@ fn builtinCall(
.frame => return rvalue(gz, ri, try gz.addNodeExtended(.frame, node), node),
.frame_address => return rvalue(gz, ri, try gz.addNodeExtended(.frame_address, node), node),
.breakpoint => return rvalue(gz, ri, try gz.addNodeExtended(.breakpoint, node), node),
- .in_comptime => return rvalue(gz, ri, try gz.addNodeExtended(.in_comptime, node), node),
.type_info => return simpleUnOpType(gz, scope, ri, node, params[0], .type_info),
.size_of => return simpleUnOpType(gz, scope, ri, node, params[0], .size_of),
@@ -9353,6 +9352,12 @@ fn builtinCall(
.truncate => return typeCast(gz, scope, ri, node, params[0], .truncate, builtin_name),
// zig fmt: on
+ .in_comptime => if (gz.is_comptime) {
+ return astgen.failNode(node, "redundant '@inComptime' in comptime scope", .{});
+ } else {
+ return rvalue(gz, ri, try gz.addNodeExtended(.in_comptime, node), node);
+ },
+
.Type => {
const operand = try expr(gz, scope, .{ .rl = .{ .coerced_ty = .type_info_type } }, params[0]);
test/behavior/eval.zig
@@ -1711,7 +1711,6 @@ test "@inComptime" {
}
};
try expectEqual(false, @inComptime());
- try expectEqual(true, comptime @inComptime());
try expectEqual(false, S.inComptime());
try expectEqual(true, comptime S.inComptime());
}
test/cases/compile_errors/redundant_in_comptime.zig
@@ -0,0 +1,7 @@
+comptime {
+ _ = @inComptime();
+}
+
+// error
+//
+// :2:9: error: redundant '@inComptime' in comptime scope