authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-05-26 12:42:50+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-05-26 13:26:55+03:00
log92c4e4f2c234816a70472250702f834a1842f4e6
tree78976f0cd78c5ac0f056343793ed469327fcdf2e
parentab88165326abfd81c5046e8c064bd6603198ed94

Sema: `zirArrayType` does need source location


2 files changed, 15 insertions(+), 2 deletions(-)

src/Sema.zig+4-2
...@@ -5814,8 +5814,10 @@ fn zirArrayType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A...@@ -5814,8 +5814,10 @@ fn zirArrayType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A
5814 defer tracy.end();5814 defer tracy.end();
58155815
5816 const bin_inst = sema.code.instructions.items(.data)[inst].bin;5816 const bin_inst = sema.code.instructions.items(.data)[inst].bin;
5817 const len = try sema.resolveInt(block, .unneeded, bin_inst.lhs, Type.usize);5817 const len_src = sema.src; // TODO better source location
5818 const elem_type = try sema.resolveType(block, .unneeded, bin_inst.rhs);5818 const elem_src = sema.src; // TODO better source location
5819 const len = try sema.resolveInt(block, len_src, bin_inst.lhs, Type.usize);
5820 const elem_type = try sema.resolveType(block, elem_src, bin_inst.rhs);
5819 const array_ty = try Type.array(sema.arena, len, null, elem_type, sema.mod);5821 const array_ty = try Type.array(sema.arena, len, null, elem_type, sema.mod);
58205822
5821 return sema.addType(array_ty);5823 return sema.addType(array_ty);
test/cases/compile_errors/invalid_array_elem_ty.zig created+11
...@@ -0,0 +1,11 @@
1pub fn S() type {
2 return struct {};
3}
4pub export fn entry() void {
5 _ = [0]S;
6}
7
8// error
9// backend=stage2,llvm
10//
11// :4:1: error: expected type, found fn() type