authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-06-04 01:29:00-07:00
committergravatar for justusk@noreply.codeberg.orgJustus Klausecker <justusk@noreply.codeberg.org> 2026-06-12 23:03:02+02:00
log9e95d51e24a91bfea12754a036bff9ac6b8bebb7
treec503fbde3d4a15fb722b0eeea1a6d884aa47af1e
parentdde807f515e871eefea3841f1836f23dfe7f8ac2

sema: add declare here note to 'type does not support indexing' error


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

src/Sema.zig+1
...@@ -33324,6 +33324,7 @@ fn checkIndexable(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) !void {...@@ -33324,6 +33324,7 @@ fn checkIndexable(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) !void {
33324 const msg = try sema.errMsg(src, "type '{f}' does not support indexing", .{ty.fmt(pt)});33324 const msg = try sema.errMsg(src, "type '{f}' does not support indexing", .{ty.fmt(pt)});
33325 errdefer msg.destroy(sema.gpa);33325 errdefer msg.destroy(sema.gpa);
33326 try sema.errNote(src, msg, "operand must be an array, slice, tuple, or vector", .{});33326 try sema.errNote(src, msg, "operand must be an array, slice, tuple, or vector", .{});
33327 try sema.addDeclaredHereNote(msg, ty);
33327 break :msg msg;33328 break :msg msg;
33328 };33329 };
33329 return sema.failWithOwnedErrorMsg(block, msg);33330 return sema.failWithOwnedErrorMsg(block, msg);
test/cases/compile_errors/indexing_non-tuple_struct.zig+1
...@@ -8,3 +8,4 @@ export fn a() void {...@@ -8,3 +8,4 @@ export fn a() void {
8//8//
9// :4:6: error: type 'tmp.a.S' does not support indexing9// :4:6: error: type 'tmp.a.S' does not support indexing
10// :4:6: note: operand must be an array, slice, tuple, or vector10// :4:6: note: operand must be an array, slice, tuple, or vector
11// :2:15: note: struct declared here