zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 1fdf13a14825d6e1bd247754e3677cf546ee4020 (tree)
parent 5f2bdafa39255234381076d4095140f922d21577
Author: mlugg <mlugg@mlugg.co.uk>
Date:   Wed, 19 Jun 2024 00:31:28 +0100

AstGen: error for redundant `@inComptime()`

Diffstat:
Mlib/std/zig/AstGen.zig | 7++++++-
Mtest/behavior/eval.zig | 1-
Atest/cases/compile_errors/redundant_in_comptime.zig | 7+++++++
3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/lib/std/zig/AstGen.zig b/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]); diff --git a/test/behavior/eval.zig b/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()); } diff --git a/test/cases/compile_errors/redundant_in_comptime.zig b/test/cases/compile_errors/redundant_in_comptime.zig @@ -0,0 +1,7 @@ +comptime { + _ = @inComptime(); +} + +// error +// +// :2:9: error: redundant '@inComptime' in comptime scope