From 69a3c4e279238874cc74cf6acd5eb0426d5b65ee Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Wed, 24 Aug 2022 21:12:13 +0300 Subject: [PATCH] Sema: correctly reset inst_map for analyzeInlineCallArg Closes #12622 --- src/Sema.zig | 3 +-- .../cases/compile_errors/error_in_typeof_param.zig | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 test/cases/compile_errors/error_in_typeof_param.zig diff --git a/src/Sema.zig b/src/Sema.zig index 22aa26f737..4af9c80e02 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -5941,10 +5941,9 @@ fn analyzeCall( undefined, ) catch |err| switch (err) { error.NeededSourceLocation => { - sema.inst_map.clearRetainingCapacity(); + _ = sema.inst_map.remove(inst); const decl = sema.mod.declPtr(block.src_decl); child_block.src_decl = block.src_decl; - arg_i = 0; try sema.analyzeInlineCallArg( block, &child_block, diff --git a/test/cases/compile_errors/error_in_typeof_param.zig b/test/cases/compile_errors/error_in_typeof_param.zig new file mode 100644 index 0000000000..747cdf3df6 --- /dev/null +++ b/test/cases/compile_errors/error_in_typeof_param.zig @@ -0,0 +1,14 @@ +fn getSize() usize { + return 2; +} +pub fn expectEqual(expected: anytype, _: @TypeOf(expected)) !void {} +pub export fn entry() void { + try expectEqual(2, getSize()); +} + +// error +// backend=stage2 +// target=native +// +// :6:31: error: unable to resolve comptime value +// :6:31: note: argument to parameter with comptime only type must be comptime known