diff options
| author | Krzysztof Wolicki <der.teufel.mail@gmail.com> | 2024-01-26 14:22:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-26 15:22:15 +0200 |
| commit | 61ba225709b88579984a1a679021d121d1aada64 (patch) | |
| tree | 55734f93d5e8009c5beecec938ef0fe634ddd533 /src/Sema.zig | |
| parent | bea958df4d0c5fc38633f09b6490c16e24a03155 (diff) | |
| download | zig-61ba225709b88579984a1a679021d121d1aada64.tar.gz zig-61ba225709b88579984a1a679021d121d1aada64.zip | |
Sema: tuples have no names to be used for reporting errors in finishStructInit
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 4244dd9aed..f4ab11969a 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -19963,13 +19963,22 @@ fn finishStructInit( const field_init = struct_type.fieldInit(ip, i); if (field_init == .none) { - const field_name = struct_type.field_names.get(ip)[i]; - const template = "missing struct field: {}"; - const args = .{field_name.fmt(ip)}; - if (root_msg) |msg| { - try sema.errNote(block, init_src, msg, template, args); + if (!struct_type.isTuple(ip)) { + const field_name = struct_type.field_names.get(ip)[i]; + const template = "missing struct field: {}"; + const args = .{field_name.fmt(ip)}; + if (root_msg) |msg| { + try sema.errNote(block, init_src, msg, template, args); + } else { + root_msg = try sema.errMsg(block, init_src, template, args); + } } else { - root_msg = try sema.errMsg(block, init_src, template, args); + const template = "missing tuple field with index {d}"; + if (root_msg) |msg| { + try sema.errNote(block, init_src, msg, template, .{i}); + } else { + root_msg = try sema.errMsg(block, init_src, template, .{i}); + } } } else { field_inits[i] = Air.internedToRef(field_init); |
