AstGen: error for redundant @inComptime()

This commit is contained in:
mlugg 2024-06-19 00:31:28 +01:00 committed by Matthew Lugg
parent 5f2bdafa39
commit 1fdf13a148
3 changed files with 13 additions and 2 deletions

View File

@ -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]);

View File

@ -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());
}

View File

@ -0,0 +1,7 @@
comptime {
_ = @inComptime();
}
// error
//
// :2:9: error: redundant '@inComptime' in comptime scope