authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-08-26 16:59:24-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-08-28 17:25:39-04:00
logfe737d7a8f9a801e2db103c085a200a7477cfb08
tree125e0398e6eed6f957af55a76e48efc8cf52f3b7
parentacd35a1aa75c78dc24859fa658f6d3e25e330b8a

Sema: refactor to add a `block` param to `failWithOwnedErrorMsg`

We will need this in a bit...

1 files changed, 180 insertions(+), 179 deletions(-)

src/Sema.zig+180-179
......@@ -1460,7 +1460,7 @@ fn analyzeBodyInner(
14601460 try sema.errNote(block, runtime_src, msg, "runtime control flow here", .{});
14611461 break :msg msg;
14621462 };
1463 return sema.failWithOwnedErrorMsg(msg);
1463 return sema.failWithOwnedErrorMsg(block, msg);
14641464 }
14651465 }
14661466 i += 1;
......@@ -1910,7 +1910,7 @@ fn resolveDestType(
19101910 try sema.errNote(block, src, msg, "use @as to provide explicit result type", .{});
19111911 break :msg msg;
19121912 };
1913 return sema.failWithOwnedErrorMsg(msg);
1913 return sema.failWithOwnedErrorMsg(block, msg);
19141914 },
19151915 else => |e| return e,
19161916 };
......@@ -2158,7 +2158,7 @@ fn failWithNeededComptime(sema: *Sema, block: *Block, src: LazySrcLoc, reason: N
21582158 }
21592159 break :msg msg;
21602160 };
2161 return sema.failWithOwnedErrorMsg(msg);
2161 return sema.failWithOwnedErrorMsg(block, msg);
21622162}
21632163
21642164fn failWithUseOfUndef(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError {
......@@ -2191,7 +2191,7 @@ fn failWithArrayInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty
21912191 }
21922192 break :msg msg;
21932193 };
2194 return sema.failWithOwnedErrorMsg(msg);
2194 return sema.failWithOwnedErrorMsg(block, msg);
21952195}
21962196
21972197fn failWithStructInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) CompileError {
......@@ -2223,7 +2223,7 @@ fn failWithIntegerOverflow(sema: *Sema, block: *Block, src: LazySrcLoc, int_ty:
22232223 try sema.errNote(block, src, msg, "when computing vector element at index '{d}'", .{vector_index});
22242224 break :msg msg;
22252225 };
2226 return sema.failWithOwnedErrorMsg(msg);
2226 return sema.failWithOwnedErrorMsg(block, msg);
22272227 }
22282228 return sema.fail(block, src, "overflow of integer type '{}' with value '{}'", .{
22292229 int_ty.fmt(sema.mod), val.fmtValue(int_ty, sema.mod),
......@@ -2244,7 +2244,7 @@ fn failWithInvalidComptimeFieldStore(sema: *Sema, block: *Block, init_src: LazyS
22442244 try mod.errNoteNonLazy(default_value_src, msg, "default value set here", .{});
22452245 break :msg msg;
22462246 };
2247 return sema.failWithOwnedErrorMsg(msg);
2247 return sema.failWithOwnedErrorMsg(block, msg);
22482248}
22492249
22502250fn failWithUseOfAsync(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError {
......@@ -2253,7 +2253,7 @@ fn failWithUseOfAsync(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError
22532253 errdefer msg.destroy(sema.gpa);
22542254 break :msg msg;
22552255 };
2256 return sema.failWithOwnedErrorMsg(msg);
2256 return sema.failWithOwnedErrorMsg(block, msg);
22572257}
22582258
22592259fn failWithInvalidFieldAccess(
......@@ -2275,7 +2275,7 @@ fn failWithInvalidFieldAccess(
22752275 try sema.errNote(block, src, msg, "consider using '.?', 'orelse', or 'if'", .{});
22762276 break :msg msg;
22772277 };
2278 return sema.failWithOwnedErrorMsg(msg);
2278 return sema.failWithOwnedErrorMsg(block, msg);
22792279 } else if (inner_ty.zigTypeTag(mod) == .ErrorUnion) err: {
22802280 const child_ty = inner_ty.errorUnionPayload(mod);
22812281 if (!typeSupportsFieldAccess(mod, child_ty, field_name)) break :err;
......@@ -2285,7 +2285,7 @@ fn failWithInvalidFieldAccess(
22852285 try sema.errNote(block, src, msg, "consider using 'try', 'catch', or 'if'", .{});
22862286 break :msg msg;
22872287 };
2288 return sema.failWithOwnedErrorMsg(msg);
2288 return sema.failWithOwnedErrorMsg(block, msg);
22892289 }
22902290 return sema.fail(block, src, "type '{}' does not support field access", .{object_ty.fmt(sema.mod)});
22912291}
......@@ -2386,10 +2386,11 @@ pub fn fail(
23862386 args: anytype,
23872387) CompileError {
23882388 const err_msg = try sema.errMsg(block, src, format, args);
2389 return sema.failWithOwnedErrorMsg(err_msg);
2389 return sema.failWithOwnedErrorMsg(block, err_msg);
23902390}
23912391
2392fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError {
2392fn failWithOwnedErrorMsg(sema: *Sema, block: ?*Block, err_msg: *Module.ErrorMsg) CompileError {
2393 _ = block;
23932394 @setCold(true);
23942395 const gpa = sema.gpa;
23952396 const mod = sema.mod;
......@@ -3226,7 +3227,7 @@ fn zirEnumDecl(
32263227 try sema.errNote(block, other_field_src, msg, "other field here", .{});
32273228 break :msg msg;
32283229 };
3229 return sema.failWithOwnedErrorMsg(msg);
3230 return sema.failWithOwnedErrorMsg(block, msg);
32303231 }
32313232
32323233 const tag_overflow = if (has_tag_value) overflow: {
......@@ -3260,7 +3261,7 @@ fn zirEnumDecl(
32603261 try sema.errNote(block, other_field_src, msg, "other occurrence here", .{});
32613262 break :msg msg;
32623263 };
3263 return sema.failWithOwnedErrorMsg(msg);
3264 return sema.failWithOwnedErrorMsg(block, msg);
32643265 }
32653266 break :overflow false;
32663267 } else if (any_values) overflow: {
......@@ -3279,7 +3280,7 @@ fn zirEnumDecl(
32793280 try sema.errNote(block, other_field_src, msg, "other occurrence here", .{});
32803281 break :msg msg;
32813282 };
3282 return sema.failWithOwnedErrorMsg(msg);
3283 return sema.failWithOwnedErrorMsg(block, msg);
32833284 }
32843285 break :overflow false;
32853286 } else overflow: {
......@@ -3297,7 +3298,7 @@ fn zirEnumDecl(
32973298 const msg = try sema.errMsg(block, value_src, "enumeration value '{}' too large for type '{}'", .{
32983299 last_tag_val.?.fmtValue(int_tag_ty, mod), int_tag_ty.fmt(mod),
32993300 });
3300 return sema.failWithOwnedErrorMsg(msg);
3301 return sema.failWithOwnedErrorMsg(block, msg);
33013302 }
33023303 }
33033304 return decl_val;
......@@ -3570,7 +3571,7 @@ fn ensureResultUsed(
35703571 try sema.errNote(block, src, msg, "consider using 'try', 'catch', or 'if'", .{});
35713572 break :msg msg;
35723573 };
3573 return sema.failWithOwnedErrorMsg(msg);
3574 return sema.failWithOwnedErrorMsg(block, msg);
35743575 },
35753576 else => {
35763577 const msg = msg: {
......@@ -3580,7 +3581,7 @@ fn ensureResultUsed(
35803581 try sema.errNote(block, src, msg, "this error can be suppressed by assigning the value to '_'", .{});
35813582 break :msg msg;
35823583 };
3583 return sema.failWithOwnedErrorMsg(msg);
3584 return sema.failWithOwnedErrorMsg(block, msg);
35843585 },
35853586 }
35863587}
......@@ -3602,7 +3603,7 @@ fn zirEnsureResultNonError(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Com
36023603 try sema.errNote(block, src, msg, "consider using 'try', 'catch', or 'if'", .{});
36033604 break :msg msg;
36043605 };
3605 return sema.failWithOwnedErrorMsg(msg);
3606 return sema.failWithOwnedErrorMsg(block, msg);
36063607 },
36073608 else => return,
36083609 }
......@@ -3630,7 +3631,7 @@ fn zirEnsureErrUnionPayloadVoid(sema: *Sema, block: *Block, inst: Zir.Inst.Index
36303631 try sema.errNote(block, src, msg, "payload value can be explicitly ignored with '|_|'", .{});
36313632 break :msg msg;
36323633 };
3633 return sema.failWithOwnedErrorMsg(msg);
3634 return sema.failWithOwnedErrorMsg(block, msg);
36343635 }
36353636}
36363637
......@@ -4269,7 +4270,7 @@ fn zirForLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.
42694270 try sema.errNote(block, arg_src, msg, "for loop operand must be a range, array, slice, tuple, or vector", .{});
42704271 break :msg msg;
42714272 };
4272 return sema.failWithOwnedErrorMsg(msg);
4273 return sema.failWithOwnedErrorMsg(block, msg);
42734274 }
42744275 if (!object_ty.indexableHasLen(mod)) continue;
42754276
......@@ -4298,7 +4299,7 @@ fn zirForLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.
42984299 });
42994300 break :msg msg;
43004301 };
4301 return sema.failWithOwnedErrorMsg(msg);
4302 return sema.failWithOwnedErrorMsg(block, msg);
43024303 }
43034304 } else {
43044305 len = arg_len;
......@@ -4336,7 +4337,7 @@ fn zirForLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.
43364337 }
43374338 break :msg msg;
43384339 };
4339 return sema.failWithOwnedErrorMsg(msg);
4340 return sema.failWithOwnedErrorMsg(block, msg);
43404341 }
43414342
43424343 // Now for the runtime checks.
......@@ -4511,7 +4512,7 @@ fn validateUnionInit(
45114512 try sema.addDeclaredHereNote(msg, union_ty);
45124513 break :msg msg;
45134514 };
4514 return sema.failWithOwnedErrorMsg(msg);
4515 return sema.failWithOwnedErrorMsg(block, msg);
45154516 }
45164517
45174518 if (block.is_comptime and
......@@ -4678,7 +4679,7 @@ fn validateStructInit(
46784679 try sema.errNote(block, other_field_src, msg, "other field here", .{});
46794680 break :msg msg;
46804681 };
4681 return sema.failWithOwnedErrorMsg(msg);
4682 return sema.failWithOwnedErrorMsg(block, msg);
46824683 }
46834684 found_fields[field_index.*] = field_ptr;
46844685 }
......@@ -4739,7 +4740,7 @@ fn validateStructInit(
47394740 );
47404741 }
47414742 root_msg = null;
4742 return sema.failWithOwnedErrorMsg(msg);
4743 return sema.failWithOwnedErrorMsg(block, msg);
47434744 }
47444745
47454746 return;
......@@ -4869,7 +4870,7 @@ fn validateStructInit(
48694870 );
48704871 }
48714872 root_msg = null;
4872 return sema.failWithOwnedErrorMsg(msg);
4873 return sema.failWithOwnedErrorMsg(block, msg);
48734874 }
48744875
48754876 if (struct_is_comptime) {
......@@ -4973,7 +4974,7 @@ fn zirValidateArrayInit(
49734974
49744975 if (root_msg) |msg| {
49754976 root_msg = null;
4976 return sema.failWithOwnedErrorMsg(msg);
4977 return sema.failWithOwnedErrorMsg(block, msg);
49774978 }
49784979 },
49794980 .Array => {
......@@ -5186,7 +5187,7 @@ fn zirValidateDeref(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErr
51865187 try sema.explainWhyTypeIsComptime(msg, src.toSrcLoc(src_decl, mod), elem_ty);
51875188 break :msg msg;
51885189 };
5189 return sema.failWithOwnedErrorMsg(msg);
5190 return sema.failWithOwnedErrorMsg(block, msg);
51905191 }
51915192}
51925193
......@@ -5218,7 +5219,7 @@ fn failWithBadMemberAccess(
52185219 try sema.addDeclaredHereNote(msg, agg_ty);
52195220 break :msg msg;
52205221 };
5221 return sema.failWithOwnedErrorMsg(msg);
5222 return sema.failWithOwnedErrorMsg(block, msg);
52225223}
52235224
52245225fn failWithBadStructFieldAccess(
......@@ -5244,7 +5245,7 @@ fn failWithBadStructFieldAccess(
52445245 try mod.errNoteNonLazy(struct_obj.srcLoc(mod), msg, "struct declared here", .{});
52455246 break :msg msg;
52465247 };
5247 return sema.failWithOwnedErrorMsg(msg);
5248 return sema.failWithOwnedErrorMsg(block, msg);
52485249}
52495250
52505251fn failWithBadUnionFieldAccess(
......@@ -5271,7 +5272,7 @@ fn failWithBadUnionFieldAccess(
52715272 try mod.errNoteNonLazy(decl.srcLoc(mod), msg, "union declared here", .{});
52725273 break :msg msg;
52735274 };
5274 return sema.failWithOwnedErrorMsg(msg);
5275 return sema.failWithOwnedErrorMsg(block, msg);
52755276}
52765277
52775278fn addDeclaredHereNote(sema: *Sema, parent: *Module.ErrorMsg, decl_ty: Type) !void {
......@@ -5737,7 +5738,7 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr
57375738 }
57385739 break :msg msg;
57395740 };
5740 return sema.failWithOwnedErrorMsg(msg);
5741 return sema.failWithOwnedErrorMsg(&child_block, msg);
57415742 }
57425743 const c_import_pkg = Package.create(
57435744 sema.gpa,
......@@ -5918,7 +5919,7 @@ fn analyzeBlockBody(
59185919
59195920 break :msg msg;
59205921 };
5921 return sema.failWithOwnedErrorMsg(msg);
5922 return sema.failWithOwnedErrorMsg(child_block, msg);
59225923 }
59235924 const ty_inst = Air.internedToRef(resolved_ty.toIntern());
59245925 try sema.air_extra.ensureUnusedCapacity(gpa, @typeInfo(Air.Block).Struct.fields.len +
......@@ -6071,7 +6072,7 @@ pub fn analyzeExport(
60716072 try sema.addDeclaredHereNote(msg, exported_decl.ty);
60726073 break :msg msg;
60736074 };
6074 return sema.failWithOwnedErrorMsg(msg);
6075 return sema.failWithOwnedErrorMsg(block, msg);
60756076 }
60766077
60776078 // TODO: some backends might support re-exporting extern decls
......@@ -6148,7 +6149,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.Inst
61486149 try sema.errNote(block, prev_src, msg, "other instance here", .{});
61496150 break :msg msg;
61506151 };
6151 return sema.failWithOwnedErrorMsg(msg);
6152 return sema.failWithOwnedErrorMsg(block, msg);
61526153 }
61536154
61546155 const ip = &mod.intern_pool;
......@@ -6465,7 +6466,7 @@ fn lookupInNamespace(
64656466 }
64666467 break :msg msg;
64676468 };
6468 return sema.failWithOwnedErrorMsg(msg);
6469 return sema.failWithOwnedErrorMsg(block, msg);
64696470 },
64706471 }
64716472 } else if (namespace.decls.getKeyAdapted(ident_name, Module.DeclAdapter{ .mod = mod })) |decl_index| {
......@@ -6759,7 +6760,7 @@ fn checkCallArgumentCount(
67596760 try sema.errNote(block, func_src, msg, "consider using '.?', 'orelse' or 'if'", .{});
67606761 break :msg msg;
67616762 };
6762 return sema.failWithOwnedErrorMsg(msg);
6763 return sema.failWithOwnedErrorMsg(block, msg);
67636764 }
67646765 },
67656766 else => {},
......@@ -6797,7 +6798,7 @@ fn checkCallArgumentCount(
67976798 if (maybe_decl) |fn_decl| try mod.errNoteNonLazy(fn_decl.srcLoc(mod), msg, "function declared here", .{});
67986799 break :msg msg;
67996800 };
6800 return sema.failWithOwnedErrorMsg(msg);
6801 return sema.failWithOwnedErrorMsg(block, msg);
68016802}
68026803
68036804fn callBuiltin(
......@@ -7131,7 +7132,7 @@ fn analyzeCall(
71317132 if (maybe_decl) |fn_decl| try mod.errNoteNonLazy(fn_decl.srcLoc(mod), msg, "function declared here", .{});
71327133 break :msg msg;
71337134 };
7134 return sema.failWithOwnedErrorMsg(msg);
7135 return sema.failWithOwnedErrorMsg(block, msg);
71357136 }
71367137
71377138 const call_tag: Air.Inst.Tag = switch (modifier) {
......@@ -7190,7 +7191,7 @@ fn analyzeCall(
71907191 }
71917192 break :msg msg;
71927193 };
7193 return sema.failWithOwnedErrorMsg(msg);
7194 return sema.failWithOwnedErrorMsg(block, msg);
71947195 }
71957196
71967197 if (!is_inline_call and is_generic_call) {
......@@ -7931,7 +7932,7 @@ fn instantiateGenericCall(
79317932 } else switch (param_tag) {
79327933 .param_comptime,
79337934 .param_anytype_comptime,
7934 => return sema.failWithOwnedErrorMsg(msg: {
7935 => return sema.failWithOwnedErrorMsg(block, msg: {
79357936 const arg_src = args_info.argSrc(block, arg_index);
79367937 const msg = try sema.errMsg(block, arg_src, "runtime-known argument passed to comptime parameter", .{});
79377938 errdefer msg.destroy(sema.gpa);
......@@ -7946,7 +7947,7 @@ fn instantiateGenericCall(
79467947
79477948 .param,
79487949 .param_anytype,
7949 => return sema.failWithOwnedErrorMsg(msg: {
7950 => return sema.failWithOwnedErrorMsg(block, msg: {
79507951 const arg_src = args_info.argSrc(block, arg_index);
79517952 const msg = try sema.errMsg(block, arg_src, "runtime-known argument passed to parameter of comptime-only type", .{});
79527953 errdefer msg.destroy(sema.gpa);
......@@ -8421,7 +8422,7 @@ fn zirMergeErrorSets(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr
84218422 try sema.errNote(block, src, msg, "'||' merges error sets; 'or' performs boolean OR", .{});
84228423 break :msg msg;
84238424 };
8424 return sema.failWithOwnedErrorMsg(msg);
8425 return sema.failWithOwnedErrorMsg(block, msg);
84258426 }
84268427 const lhs_ty = try sema.analyzeAsType(block, lhs_src, lhs);
84278428 const rhs_ty = try sema.analyzeAsType(block, rhs_src, rhs);
......@@ -8545,7 +8546,7 @@ fn zirEnumFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
85458546 try sema.addDeclaredHereNote(msg, dest_ty);
85468547 break :msg msg;
85478548 };
8548 return sema.failWithOwnedErrorMsg(msg);
8549 return sema.failWithOwnedErrorMsg(block, msg);
85498550 }
85508551 if (int_val.isUndef(mod)) {
85518552 return sema.failWithUseOfUndef(block, operand_src);
......@@ -8562,7 +8563,7 @@ fn zirEnumFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
85628563 try sema.addDeclaredHereNote(msg, dest_ty);
85638564 break :msg msg;
85648565 };
8565 return sema.failWithOwnedErrorMsg(msg);
8566 return sema.failWithOwnedErrorMsg(block, msg);
85668567 }
85678568 return Air.internedToRef((try mod.getCoerced(int_val, dest_ty)).toIntern());
85688569 }
......@@ -9139,7 +9140,7 @@ fn checkCallConvSupportsVarArgs(sema: *Sema, block: *Block, src: LazySrcLoc, cc:
91399140 try sema.errNote(block, src, msg, "supported calling conventions: {}", .{CallingConventionsSupportingVarArgsList{}});
91409141 break :msg msg;
91419142 };
9142 return sema.failWithOwnedErrorMsg(msg);
9143 return sema.failWithOwnedErrorMsg(block, msg);
91439144 }
91449145}
91459146
......@@ -9235,7 +9236,7 @@ fn funcCommon(
92359236 try sema.addDeclaredHereNote(msg, param_ty);
92369237 break :msg msg;
92379238 };
9238 return sema.failWithOwnedErrorMsg(msg);
9239 return sema.failWithOwnedErrorMsg(block, msg);
92399240 }
92409241 if (!this_generic and !target_util.fnCallConvAllowsZigTypes(target, cc_resolved) and !try sema.validateExternType(param_ty, .param_ty)) {
92419242 const msg = msg: {
......@@ -9250,7 +9251,7 @@ fn funcCommon(
92509251 try sema.addDeclaredHereNote(msg, param_ty);
92519252 break :msg msg;
92529253 };
9253 return sema.failWithOwnedErrorMsg(msg);
9254 return sema.failWithOwnedErrorMsg(block, msg);
92549255 }
92559256 if (is_source_decl and requires_comptime and !param_is_comptime and has_body) {
92569257 const msg = msg: {
......@@ -9265,7 +9266,7 @@ fn funcCommon(
92659266 try sema.addDeclaredHereNote(msg, param_ty);
92669267 break :msg msg;
92679268 };
9268 return sema.failWithOwnedErrorMsg(msg);
9269 return sema.failWithOwnedErrorMsg(block, msg);
92699270 }
92709271 if (is_source_decl and !this_generic and is_noalias and
92719272 !(param_ty.zigTypeTag(mod) == .Pointer or param_ty.isPtrLikeOptional(mod)))
......@@ -9527,7 +9528,7 @@ fn finishFunc(
95279528 try sema.addDeclaredHereNote(msg, return_type);
95289529 break :msg msg;
95299530 };
9530 return sema.failWithOwnedErrorMsg(msg);
9531 return sema.failWithOwnedErrorMsg(block, msg);
95319532 }
95329533 if (!ret_poison and !target_util.fnCallConvAllowsZigTypes(target, cc_resolved) and
95339534 !try sema.validateExternType(return_type, .ret_ty))
......@@ -9544,7 +9545,7 @@ fn finishFunc(
95449545 try sema.addDeclaredHereNote(msg, return_type);
95459546 break :msg msg;
95469547 };
9547 return sema.failWithOwnedErrorMsg(msg);
9548 return sema.failWithOwnedErrorMsg(block, msg);
95489549 }
95499550
95509551 // If the return type is comptime-only but not dependent on parameters then
......@@ -9584,7 +9585,7 @@ fn finishFunc(
95849585 }
95859586 }
95869587 }
9587 return sema.failWithOwnedErrorMsg(msg);
9588 return sema.failWithOwnedErrorMsg(block, msg);
95889589 }
95899590
95909591 const arch = target.cpu.arch;
......@@ -10125,7 +10126,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1012510126
1012610127 break :msg msg;
1012710128 };
10128 return sema.failWithOwnedErrorMsg(msg);
10129 return sema.failWithOwnedErrorMsg(block, msg);
1012910130 },
1013010131
1013110132 .Pointer => {
......@@ -10140,7 +10141,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1014010141
1014110142 break :msg msg;
1014210143 };
10143 return sema.failWithOwnedErrorMsg(msg);
10144 return sema.failWithOwnedErrorMsg(block, msg);
1014410145 },
1014510146 .Struct, .Union => if (dest_ty.containerLayout(mod) == .Auto) {
1014610147 const container = switch (dest_ty.zigTypeTag(mod)) {
......@@ -10189,7 +10190,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1018910190
1019010191 break :msg msg;
1019110192 };
10192 return sema.failWithOwnedErrorMsg(msg);
10193 return sema.failWithOwnedErrorMsg(block, msg);
1019310194 },
1019410195 .Pointer => {
1019510196 const msg = msg: {
......@@ -10203,7 +10204,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1020310204
1020410205 break :msg msg;
1020510206 };
10206 return sema.failWithOwnedErrorMsg(msg);
10207 return sema.failWithOwnedErrorMsg(block, msg);
1020710208 },
1020810209 .Struct, .Union => if (operand_ty.containerLayout(mod) == .Auto) {
1020910210 const container = switch (operand_ty.zigTypeTag(mod)) {
......@@ -10354,7 +10355,7 @@ fn zirElemPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1035410355 }
1035510356 break :msg msg;
1035610357 };
10357 return sema.failWithOwnedErrorMsg(msg);
10358 return sema.failWithOwnedErrorMsg(block, msg);
1035810359 }
1035910360 return sema.elemPtrOneLayerOnly(block, src, array_ptr, elem_index, src, false, false);
1036010361}
......@@ -10620,7 +10621,7 @@ const SwitchProngAnalysis = struct {
1062010621 try sema.addDeclaredHereNote(msg, operand_ty);
1062110622 break :msg msg;
1062210623 };
10623 return sema.failWithOwnedErrorMsg(msg);
10624 return sema.failWithOwnedErrorMsg(block, msg);
1062410625 }
1062510626 assert(inline_case_capture != .none);
1062610627 return inline_case_capture;
......@@ -10798,7 +10799,7 @@ const SwitchProngAnalysis = struct {
1079810799 try sema.errNote(block, capture_src, msg, "this coercion is only possible when capturing by value", .{});
1079910800 break :msg msg;
1080010801 };
10801 return sema.failWithOwnedErrorMsg(msg);
10802 return sema.failWithOwnedErrorMsg(block, msg);
1080210803 }
1080310804 }
1080410805 }
......@@ -11029,7 +11030,7 @@ fn switchCond(
1102911030 }
1103011031 break :msg msg;
1103111032 };
11032 return sema.failWithOwnedErrorMsg(msg);
11033 return sema.failWithOwnedErrorMsg(block, msg);
1103311034 };
1103411035 return sema.unionToTag(block, enum_ty, operand, src);
1103511036 },
......@@ -11182,7 +11183,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index, operand_is_r
1118211183 );
1118311184 break :msg msg;
1118411185 };
11185 return sema.failWithOwnedErrorMsg(msg);
11186 return sema.failWithOwnedErrorMsg(block, msg);
1118611187 }
1118711188
1118811189 // Validate for duplicate items, missing else prong, and invalid range.
......@@ -11282,7 +11283,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index, operand_is_r
1128211283 );
1128311284 break :msg msg;
1128411285 };
11285 return sema.failWithOwnedErrorMsg(msg);
11286 return sema.failWithOwnedErrorMsg(block, msg);
1128611287 } else if (special_prong == .none and operand_ty.isNonexhaustiveEnum(mod) and !union_originally) {
1128711288 return sema.fail(
1128811289 block,
......@@ -11382,7 +11383,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index, operand_is_r
1138211383 if (maybe_msg) |msg| {
1138311384 maybe_msg = null;
1138411385 try sema.addDeclaredHereNote(msg, operand_ty);
11385 return sema.failWithOwnedErrorMsg(msg);
11386 return sema.failWithOwnedErrorMsg(block, msg);
1138611387 }
1138711388
1138811389 if (special_prong == .@"else" and
......@@ -12722,7 +12723,7 @@ fn validateSwitchDupe(
1272212723 );
1272312724 break :msg msg;
1272412725 };
12725 return sema.failWithOwnedErrorMsg(msg);
12726 return sema.failWithOwnedErrorMsg(block, msg);
1272612727}
1272712728
1272812729fn validateSwitchItemBool(
......@@ -12796,7 +12797,7 @@ fn validateSwitchNoRange(
1279612797 );
1279712798 break :msg msg;
1279812799 };
12799 return sema.failWithOwnedErrorMsg(msg);
12800 return sema.failWithOwnedErrorMsg(block, msg);
1280012801}
1280112802
1280212803fn maybeErrorUnwrap(sema: *Sema, block: *Block, body: []const Zir.Inst.Index, operand: Air.Inst.Ref, operand_src: LazySrcLoc) !bool {
......@@ -13960,7 +13961,7 @@ fn zirArrayMul(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1396013961 }
1396113962 break :msg msg;
1396213963 };
13963 return sema.failWithOwnedErrorMsg(msg);
13964 return sema.failWithOwnedErrorMsg(block, msg);
1396413965 };
1396513966
1396613967 // In `**` rhs must be comptime-known, but lhs can be runtime-known
......@@ -16293,7 +16294,7 @@ fn analyzeCmpUnionTag(
1629316294 try mod.errNoteNonLazy(union_ty.declSrcLoc(mod), msg, "union '{}' is not a tagged union", .{union_ty.fmt(mod)});
1629416295 break :msg msg;
1629516296 };
16296 return sema.failWithOwnedErrorMsg(msg);
16297 return sema.failWithOwnedErrorMsg(block, msg);
1629716298 };
1629816299 // Coerce both the union and the tag to the union's tag type, and then execute the
1629916300 // enum comparison codepath.
......@@ -16628,7 +16629,7 @@ fn zirClosureGet(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!
1662816629 // TODO add "declared here" note
1662916630 break :msg msg;
1663016631 };
16631 return sema.failWithOwnedErrorMsg(msg);
16632 return sema.failWithOwnedErrorMsg(block, msg);
1663216633 }
1663316634
1663416635 if (capture == .runtime_val and !block.is_typeof and !block.is_comptime and sema.func_index != .none) {
......@@ -16658,7 +16659,7 @@ fn zirClosureGet(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!
1665816659 // TODO add "declared here" note
1665916660 break :msg msg;
1666016661 };
16661 return sema.failWithOwnedErrorMsg(msg);
16662 return sema.failWithOwnedErrorMsg(block, msg);
1666216663 }
1666316664
1666416665 switch (capture) {
......@@ -18582,7 +18583,7 @@ fn zirRetImplicit(
1858218583 try sema.errNote(block, r_brace_src, msg, "control flow reaches end of body here", .{});
1858318584 break :msg msg;
1858418585 };
18585 return sema.failWithOwnedErrorMsg(msg);
18586 return sema.failWithOwnedErrorMsg(block, msg);
1858618587 } else if (base_tag != .Void) {
1858718588 const msg = msg: {
1858818589 const msg = try sema.errMsg(block, ret_ty_src, "function with non-void return type '{}' implicitly returns", .{
......@@ -18592,7 +18593,7 @@ fn zirRetImplicit(
1859218593 try sema.errNote(block, r_brace_src, msg, "control flow reaches end of body here", .{});
1859318594 break :msg msg;
1859418595 };
18595 return sema.failWithOwnedErrorMsg(msg);
18596 return sema.failWithOwnedErrorMsg(block, msg);
1859618597 }
1859718598
1859818599 return sema.analyzeRet(block, operand, r_brace_src);
......@@ -18834,7 +18835,7 @@ fn analyzeRet(
1883418835 try sema.errNote(block, src, msg, "can only return using assembly", .{});
1883518836 break :msg msg;
1883618837 };
18837 return sema.failWithOwnedErrorMsg(msg);
18838 return sema.failWithOwnedErrorMsg(block, msg);
1883818839 }
1883918840
1884018841 try sema.resolveTypeLayout(sema.fn_ret_ty);
......@@ -18975,7 +18976,7 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1897518976 try sema.addDeclaredHereNote(msg, elem_ty);
1897618977 break :msg msg;
1897718978 };
18978 return sema.failWithOwnedErrorMsg(msg);
18979 return sema.failWithOwnedErrorMsg(block, msg);
1897918980 }
1898018981 if (elem_ty.zigTypeTag(mod) == .Opaque) {
1898118982 return sema.fail(block, elem_ty_src, "C pointers cannot point to opaque types", .{});
......@@ -19069,7 +19070,7 @@ fn zirUnionInit(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A
1906919070 try sema.addDeclaredHereNote(msg, union_ty);
1907019071 break :msg msg;
1907119072 };
19072 return sema.failWithOwnedErrorMsg(msg);
19073 return sema.failWithOwnedErrorMsg(block, msg);
1907319074 }
1907419075 const field_name = try sema.resolveConstStringIntern(block, field_src, extra.field_name, .{
1907519076 .needed_comptime_reason = "name of field being initialized must be comptime-known",
......@@ -19175,7 +19176,7 @@ fn zirStructInit(
1917519176 try sema.errNote(block, other_field_src, msg, "other field here", .{});
1917619177 break :msg msg;
1917719178 };
19178 return sema.failWithOwnedErrorMsg(msg);
19179 return sema.failWithOwnedErrorMsg(block, msg);
1917919180 }
1918019181 found_fields[field_index] = item.data.field_type;
1918119182 field_inits[field_index] = try sema.resolveInst(item.data.init);
......@@ -19317,7 +19318,7 @@ fn finishStructInit(
1931719318 );
1931819319 }
1931919320 root_msg = null;
19320 return sema.failWithOwnedErrorMsg(msg);
19321 return sema.failWithOwnedErrorMsg(block, msg);
1932119322 }
1932219323
1932319324 // Find which field forces the expression to be runtime, if any.
......@@ -19441,7 +19442,7 @@ fn structInitAnon(
1944119442 try sema.errNote(block, prev_source, msg, "other field here", .{});
1944219443 break :msg msg;
1944319444 };
19444 return sema.failWithOwnedErrorMsg(msg);
19445 return sema.failWithOwnedErrorMsg(block, msg);
1944519446 }
1944619447 gop.value_ptr.* = i;
1944719448
......@@ -19457,7 +19458,7 @@ fn structInitAnon(
1945719458 try sema.addDeclaredHereNote(msg, field_ty.toType());
1945819459 break :msg msg;
1945919460 };
19460 return sema.failWithOwnedErrorMsg(msg);
19461 return sema.failWithOwnedErrorMsg(block, msg);
1946119462 }
1946219463 if (try sema.resolveMaybeUndefVal(init)) |init_val| {
1946319464 values[i] = try init_val.intern(field_ty.toType(), mod);
......@@ -19710,7 +19711,7 @@ fn arrayInitAnon(
1971019711 try sema.addDeclaredHereNote(msg, types[i].toType());
1971119712 break :msg msg;
1971219713 };
19713 return sema.failWithOwnedErrorMsg(msg);
19714 return sema.failWithOwnedErrorMsg(block, msg);
1971419715 }
1971519716 if (try sema.resolveMaybeUndefVal(elem)) |val| {
1971619717 values[i] = val.toIntern();
......@@ -20080,7 +20081,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
2008020081 try sema.addDeclaredHereNote(msg, operand_ty);
2008120082 break :msg msg;
2008220083 };
20083 return sema.failWithOwnedErrorMsg(msg);
20084 return sema.failWithOwnedErrorMsg(block, msg);
2008420085 },
2008520086 else => return sema.fail(block, operand_src, "expected enum or union; found '{}'", .{
2008620087 operand_ty.fmt(mod),
......@@ -20106,7 +20107,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
2010620107 try mod.errNoteNonLazy(enum_decl.srcLoc(mod), msg, "declared here", .{});
2010720108 break :msg msg;
2010820109 };
20109 return sema.failWithOwnedErrorMsg(msg);
20110 return sema.failWithOwnedErrorMsg(block, msg);
2011020111 };
2011120112 // TODO: write something like getCoercedInts to avoid needing to dupe
2011220113 const field_name = enum_ty.enumFieldName(field_index, mod);
......@@ -20291,7 +20292,7 @@ fn zirReify(
2029120292 try sema.addDeclaredHereNote(msg, elem_ty);
2029220293 break :msg msg;
2029320294 };
20294 return sema.failWithOwnedErrorMsg(msg);
20295 return sema.failWithOwnedErrorMsg(block, msg);
2029520296 }
2029620297 if (elem_ty.zigTypeTag(mod) == .Opaque) {
2029720298 return sema.fail(block, src, "C pointers cannot point to opaque types", .{});
......@@ -20516,7 +20517,7 @@ fn zirReify(
2051620517 try sema.errNote(block, src, msg, "other field here", .{});
2051720518 break :msg msg;
2051820519 };
20519 return sema.failWithOwnedErrorMsg(msg);
20520 return sema.failWithOwnedErrorMsg(block, msg);
2052020521 }
2052120522
2052220523 if (try incomplete_enum.addFieldValue(ip, gpa, (try mod.getCoerced(value_val, int_tag_ty)).toIntern())) |other| {
......@@ -20527,7 +20528,7 @@ fn zirReify(
2052720528 try sema.errNote(block, src, msg, "other enum tag value here", .{});
2052820529 break :msg msg;
2052920530 };
20530 return sema.failWithOwnedErrorMsg(msg);
20531 return sema.failWithOwnedErrorMsg(block, msg);
2053120532 }
2053220533 }
2053320534
......@@ -20664,7 +20665,7 @@ fn zirReify(
2066420665 try sema.addDeclaredHereNote(msg, enum_tag_ty.toType());
2066520666 break :msg msg;
2066620667 };
20667 return sema.failWithOwnedErrorMsg(msg);
20668 return sema.failWithOwnedErrorMsg(block, msg);
2066820669 };
2066920670 // No check for duplicate because the check already happened in order
2067020671 // to create the enum type in the first place.
......@@ -20695,7 +20696,7 @@ fn zirReify(
2069520696 try sema.addDeclaredHereNote(msg, field_ty);
2069620697 break :msg msg;
2069720698 };
20698 return sema.failWithOwnedErrorMsg(msg);
20699 return sema.failWithOwnedErrorMsg(block, msg);
2069920700 }
2070020701 if (layout == .Extern and !try sema.validateExternType(field_ty, .union_field)) {
2070120702 const msg = msg: {
......@@ -20708,7 +20709,7 @@ fn zirReify(
2070820709 try sema.addDeclaredHereNote(msg, field_ty);
2070920710 break :msg msg;
2071020711 };
20711 return sema.failWithOwnedErrorMsg(msg);
20712 return sema.failWithOwnedErrorMsg(block, msg);
2071220713 } else if (layout == .Packed and !(validatePackedType(field_ty, mod))) {
2071320714 const msg = msg: {
2071420715 const msg = try sema.errMsg(block, src, "packed unions cannot contain fields of type '{}'", .{field_ty.fmt(mod)});
......@@ -20720,7 +20721,7 @@ fn zirReify(
2072020721 try sema.addDeclaredHereNote(msg, field_ty);
2072120722 break :msg msg;
2072220723 };
20723 return sema.failWithOwnedErrorMsg(msg);
20724 return sema.failWithOwnedErrorMsg(block, msg);
2072420725 }
2072520726 }
2072620727
......@@ -20740,7 +20741,7 @@ fn zirReify(
2074020741 try sema.addDeclaredHereNote(msg, enum_tag_ty.toType());
2074120742 break :msg msg;
2074220743 };
20743 return sema.failWithOwnedErrorMsg(msg);
20744 return sema.failWithOwnedErrorMsg(block, msg);
2074420745 }
2074520746 } else {
2074620747 enum_tag_ty = try sema.generateUnionTagTypeSimple(block, enum_field_names, .none);
......@@ -21058,7 +21059,7 @@ fn reifyStruct(
2105821059 try sema.addDeclaredHereNote(msg, field_ty);
2105921060 break :msg msg;
2106021061 };
21061 return sema.failWithOwnedErrorMsg(msg);
21062 return sema.failWithOwnedErrorMsg(block, msg);
2106221063 }
2106321064 if (field_ty.zigTypeTag(mod) == .NoReturn) {
2106421065 const msg = msg: {
......@@ -21068,7 +21069,7 @@ fn reifyStruct(
2106821069 try sema.addDeclaredHereNote(msg, field_ty);
2106921070 break :msg msg;
2107021071 };
21071 return sema.failWithOwnedErrorMsg(msg);
21072 return sema.failWithOwnedErrorMsg(block, msg);
2107221073 }
2107321074 if (struct_obj.layout == .Extern and !try sema.validateExternType(field_ty, .struct_field)) {
2107421075 const msg = msg: {
......@@ -21081,7 +21082,7 @@ fn reifyStruct(
2108121082 try sema.addDeclaredHereNote(msg, field_ty);
2108221083 break :msg msg;
2108321084 };
21084 return sema.failWithOwnedErrorMsg(msg);
21085 return sema.failWithOwnedErrorMsg(block, msg);
2108521086 } else if (struct_obj.layout == .Packed and !(validatePackedType(field_ty, mod))) {
2108621087 const msg = msg: {
2108721088 const msg = try sema.errMsg(block, src, "packed structs cannot contain fields of type '{}'", .{field_ty.fmt(sema.mod)});
......@@ -21093,7 +21094,7 @@ fn reifyStruct(
2109321094 try sema.addDeclaredHereNote(msg, field_ty);
2109421095 break :msg msg;
2109521096 };
21096 return sema.failWithOwnedErrorMsg(msg);
21097 return sema.failWithOwnedErrorMsg(block, msg);
2109721098 }
2109821099 }
2109921100
......@@ -21161,7 +21162,7 @@ fn zirCVaArg(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) C
2116121162 try sema.addDeclaredHereNote(msg, arg_ty);
2116221163 break :msg msg;
2116321164 };
21164 return sema.failWithOwnedErrorMsg(msg);
21165 return sema.failWithOwnedErrorMsg(block, msg);
2116521166 }
2116621167
2116721168 try sema.requireRuntimeBlock(block, src, null);
......@@ -21402,7 +21403,7 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!
2140221403 try sema.errNote(block, src, msg, "slice length cannot be inferred from address", .{});
2140321404 break :msg msg;
2140421405 };
21405 return sema.failWithOwnedErrorMsg(msg);
21406 return sema.failWithOwnedErrorMsg(block, msg);
2140621407 }
2140721408
2140821409 if (try sema.resolveDefinedValue(block, operand_src, operand_coerced)) |val| {
......@@ -21538,7 +21539,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat
2153821539 try sema.addDeclaredHereNote(msg, dest_ty);
2153921540 break :msg msg;
2154021541 };
21541 return sema.failWithOwnedErrorMsg(msg);
21542 return sema.failWithOwnedErrorMsg(block, msg);
2154221543 }
2154321544
2154421545 if (maybe_operand_val) |val| {
......@@ -21556,7 +21557,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat
2155621557 try sema.addDeclaredHereNote(msg, dest_ty);
2155721558 break :msg msg;
2155821559 };
21559 return sema.failWithOwnedErrorMsg(msg);
21560 return sema.failWithOwnedErrorMsg(block, msg);
2156021561 }
2156121562 }
2156221563
......@@ -21662,7 +21663,7 @@ fn ptrCastFull(
2166221663 if (src_slice_like and dest_slice_like) break :check_size;
2166321664 if (src_info.flags.size == .C) break :check_size;
2166421665 if (dest_info.flags.size == .C) break :check_size;
21665 return sema.failWithOwnedErrorMsg(msg: {
21666 return sema.failWithOwnedErrorMsg(block, msg: {
2166621667 const msg = try sema.errMsg(block, src, "cannot implicitly convert {s} pointer to {s} pointer", .{
2166721668 pointerSizeString(src_info.flags.size),
2166821669 pointerSizeString(dest_info.flags.size),
......@@ -21698,7 +21699,7 @@ fn ptrCastFull(
2169821699 operand_src,
2169921700 );
2170021701 if (imc_res == .ok) break :check_child;
21701 return sema.failWithOwnedErrorMsg(msg: {
21702 return sema.failWithOwnedErrorMsg(block, msg: {
2170221703 const msg = try sema.errMsg(block, src, "pointer element type '{}' cannot coerce into element type '{}'", .{
2170321704 src_child.fmt(mod),
2170421705 dest_child.fmt(mod),
......@@ -21725,7 +21726,7 @@ fn ptrCastFull(
2172521726 if (dest_info.sentinel == coerced_sent) break :check_sent;
2172621727 }
2172721728 }
21728 return sema.failWithOwnedErrorMsg(msg: {
21729 return sema.failWithOwnedErrorMsg(block, msg: {
2172921730 const msg = if (src_info.sentinel == .none) blk: {
2173021731 break :blk try sema.errMsg(block, src, "destination pointer requires '{}' sentinel", .{
2173121732 dest_info.sentinel.toValue().fmtValue(dest_info.child.toType(), mod),
......@@ -21743,7 +21744,7 @@ fn ptrCastFull(
2174321744 }
2174421745
2174521746 if (src_info.packed_offset.host_size != dest_info.packed_offset.host_size) {
21746 return sema.failWithOwnedErrorMsg(msg: {
21747 return sema.failWithOwnedErrorMsg(block, msg: {
2174721748 const msg = try sema.errMsg(block, src, "pointer host size '{}' cannot coerce into pointer host size '{}'", .{
2174821749 src_info.packed_offset.host_size,
2174921750 dest_info.packed_offset.host_size,
......@@ -21755,7 +21756,7 @@ fn ptrCastFull(
2175521756 }
2175621757
2175721758 if (src_info.packed_offset.bit_offset != dest_info.packed_offset.bit_offset) {
21758 return sema.failWithOwnedErrorMsg(msg: {
21759 return sema.failWithOwnedErrorMsg(block, msg: {
2175921760 const msg = try sema.errMsg(block, src, "pointer bit offset '{}' cannot coerce into pointer bit offset '{}'", .{
2176021761 src_info.packed_offset.bit_offset,
2176121762 dest_info.packed_offset.bit_offset,
......@@ -21772,7 +21773,7 @@ fn ptrCastFull(
2177221773 if (!src_allows_zero) break :check_allowzero;
2177321774 if (dest_allows_zero) break :check_allowzero;
2177421775
21775 return sema.failWithOwnedErrorMsg(msg: {
21776 return sema.failWithOwnedErrorMsg(block, msg: {
2177621777 const msg = try sema.errMsg(block, src, "'{}' could have null values which are illegal in type '{}'", .{
2177721778 operand_ty.fmt(mod),
2177821779 dest_ty.fmt(mod),
......@@ -21790,7 +21791,7 @@ fn ptrCastFull(
2179021791 const dest_align = dest_info.flags.alignment.toByteUnitsOptional() orelse dest_info.child.toType().abiAlignment(mod);
2179121792 if (!flags.align_cast) {
2179221793 if (dest_align > src_align) {
21793 return sema.failWithOwnedErrorMsg(msg: {
21794 return sema.failWithOwnedErrorMsg(block, msg: {
2179421795 const msg = try sema.errMsg(block, src, "cast increases pointer alignment", .{});
2179521796 errdefer msg.destroy(sema.gpa);
2179621797 try sema.errNote(block, operand_src, msg, "'{}' has alignment '{d}'", .{
......@@ -21807,7 +21808,7 @@ fn ptrCastFull(
2180721808
2180821809 if (!flags.addrspace_cast) {
2180921810 if (src_info.flags.address_space != dest_info.flags.address_space) {
21810 return sema.failWithOwnedErrorMsg(msg: {
21811 return sema.failWithOwnedErrorMsg(block, msg: {
2181121812 const msg = try sema.errMsg(block, src, "cast changes pointer address space", .{});
2181221813 errdefer msg.destroy(sema.gpa);
2181321814 try sema.errNote(block, operand_src, msg, "'{}' has address space '{s}'", .{
......@@ -21823,7 +21824,7 @@ fn ptrCastFull(
2182321824 } else {
2182421825 // Some address space casts are always disallowed
2182521826 if (!target_util.addrSpaceCastIsValid(mod.getTarget(), src_info.flags.address_space, dest_info.flags.address_space)) {
21826 return sema.failWithOwnedErrorMsg(msg: {
21827 return sema.failWithOwnedErrorMsg(block, msg: {
2182721828 const msg = try sema.errMsg(block, src, "invalid address space cast", .{});
2182821829 errdefer msg.destroy(sema.gpa);
2182921830 try sema.errNote(block, operand_src, msg, "address space '{s}' is not compatible with address space '{s}'", .{
......@@ -21837,7 +21838,7 @@ fn ptrCastFull(
2183721838
2183821839 if (!flags.const_cast) {
2183921840 if (src_info.flags.is_const and !dest_info.flags.is_const) {
21840 return sema.failWithOwnedErrorMsg(msg: {
21841 return sema.failWithOwnedErrorMsg(block, msg: {
2184121842 const msg = try sema.errMsg(block, src, "cast discards const qualifier", .{});
2184221843 errdefer msg.destroy(sema.gpa);
2184321844 try sema.errNote(block, src, msg, "use @constCast to discard const qualifier", .{});
......@@ -21848,7 +21849,7 @@ fn ptrCastFull(
2184821849
2184921850 if (!flags.volatile_cast) {
2185021851 if (src_info.flags.is_volatile and !dest_info.flags.is_volatile) {
21851 return sema.failWithOwnedErrorMsg(msg: {
21852 return sema.failWithOwnedErrorMsg(block, msg: {
2185221853 const msg = try sema.errMsg(block, src, "cast discards volatile qualifier", .{});
2185321854 errdefer msg.destroy(sema.gpa);
2185421855 try sema.errNote(block, src, msg, "use @volatileCast to discard volatile qualifier", .{});
......@@ -22059,7 +22060,7 @@ fn zirTruncate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
2205922060 });
2206022061 break :msg msg;
2206122062 };
22062 return sema.failWithOwnedErrorMsg(msg);
22063 return sema.failWithOwnedErrorMsg(block, msg);
2206322064 }
2206422065 }
2206522066
......@@ -22286,7 +22287,7 @@ fn bitOffsetOf(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!u6
2228622287 try sema.addDeclaredHereNote(msg, ty);
2228722288 break :msg msg;
2228822289 };
22289 return sema.failWithOwnedErrorMsg(msg);
22290 return sema.failWithOwnedErrorMsg(block, msg);
2229022291 },
2229122292 }
2229222293
......@@ -22397,7 +22398,7 @@ fn checkPtrOperand(
2239722398
2239822399 break :msg msg;
2239922400 };
22400 return sema.failWithOwnedErrorMsg(msg);
22401 return sema.failWithOwnedErrorMsg(block, msg);
2240122402 },
2240222403 .Optional => if (ty.childType(mod).zigTypeTag(mod) == .Pointer) return,
2240322404 else => {},
......@@ -22428,7 +22429,7 @@ fn checkPtrType(
2242822429
2242922430 break :msg msg;
2243022431 };
22431 return sema.failWithOwnedErrorMsg(msg);
22432 return sema.failWithOwnedErrorMsg(block, msg);
2243222433 },
2243322434 .Optional => if (ty.childType(mod).zigTypeTag(mod) == .Pointer) return,
2243422435 else => {},
......@@ -22569,7 +22570,7 @@ fn checkComptimeVarStore(
2256922570 try sema.errNote(block, cond_src, msg, "runtime condition here", .{});
2257022571 break :msg msg;
2257122572 };
22572 return sema.failWithOwnedErrorMsg(msg);
22573 return sema.failWithOwnedErrorMsg(block, msg);
2257322574 }
2257422575 if (block.runtime_loop) |loop_src| {
2257522576 const msg = msg: {
......@@ -22578,7 +22579,7 @@ fn checkComptimeVarStore(
2257822579 try sema.errNote(block, loop_src, msg, "non-inline loop here", .{});
2257922580 break :msg msg;
2258022581 };
22581 return sema.failWithOwnedErrorMsg(msg);
22582 return sema.failWithOwnedErrorMsg(block, msg);
2258222583 }
2258322584 unreachable;
2258422585 }
......@@ -22720,7 +22721,7 @@ fn checkVectorizableBinaryOperands(
2272022721 try sema.errNote(block, rhs_src, msg, "length {d} here", .{rhs_len});
2272122722 break :msg msg;
2272222723 };
22723 return sema.failWithOwnedErrorMsg(msg);
22724 return sema.failWithOwnedErrorMsg(block, msg);
2272422725 }
2272522726 } else {
2272622727 const msg = msg: {
......@@ -22737,7 +22738,7 @@ fn checkVectorizableBinaryOperands(
2273722738 }
2273822739 break :msg msg;
2273922740 };
22740 return sema.failWithOwnedErrorMsg(msg);
22741 return sema.failWithOwnedErrorMsg(block, msg);
2274122742 }
2274222743}
2274322744
......@@ -23165,7 +23166,7 @@ fn analyzeShuffle(
2316523166
2316623167 break :msg msg;
2316723168 };
23168 return sema.failWithOwnedErrorMsg(msg);
23169 return sema.failWithOwnedErrorMsg(block, msg);
2316923170 }
2317023171 }
2317123172
......@@ -23750,7 +23751,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr
2375023751 try sema.addDeclaredHereNote(msg, parent_ty);
2375123752 break :msg msg;
2375223753 };
23753 return sema.failWithOwnedErrorMsg(msg);
23754 return sema.failWithOwnedErrorMsg(block, msg);
2375423755 }
2375523756 return Air.internedToRef(field.base);
2375623757 }
......@@ -24104,7 +24105,7 @@ fn zirMemcpy(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void
2410424105 });
2410524106 break :msg msg;
2410624107 };
24107 return sema.failWithOwnedErrorMsg(msg);
24108 return sema.failWithOwnedErrorMsg(block, msg);
2410824109 }
2410924110
2411024111 var len_val: ?Value = null;
......@@ -24126,7 +24127,7 @@ fn zirMemcpy(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void
2412624127 });
2412724128 break :msg msg;
2412824129 };
24129 return sema.failWithOwnedErrorMsg(msg);
24130 return sema.failWithOwnedErrorMsg(block, msg);
2413024131 }
2413124132 break :check;
2413224133 }
......@@ -24319,7 +24320,7 @@ fn zirMemset(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void
2431924320 },
2432024321 .Many, .C => {},
2432124322 }
24322 return sema.failWithOwnedErrorMsg(msg: {
24323 return sema.failWithOwnedErrorMsg(block, msg: {
2432324324 const msg = try sema.errMsg(block, src, "unknown @memset length", .{});
2432424325 errdefer msg.destroy(sema.gpa);
2432524326 try sema.errNote(block, dest_src, msg, "destination type '{}' provides no length", .{
......@@ -24969,7 +24970,7 @@ fn zirBuiltinExtern(
2496924970 try sema.explainWhyTypeIsNotExtern(msg, ty_src.toSrcLoc(src_decl, mod), ty, .other);
2497024971 break :msg msg;
2497124972 };
24972 return sema.failWithOwnedErrorMsg(msg);
24973 return sema.failWithOwnedErrorMsg(block, msg);
2497324974 }
2497424975
2497524976 const options = sema.resolveExternOptions(block, .unneeded, extra.rhs) catch |err| switch (err) {
......@@ -25087,7 +25088,7 @@ fn requireRuntimeBlock(sema: *Sema, block: *Block, src: LazySrcLoc, runtime_src:
2508725088 }
2508825089 break :msg msg;
2508925090 };
25090 return sema.failWithOwnedErrorMsg(msg);
25091 return sema.failWithOwnedErrorMsg(block, msg);
2509125092 }
2509225093}
2509325094
......@@ -25109,7 +25110,7 @@ fn validateVarType(
2510925110 try sema.explainWhyTypeIsNotExtern(msg, src.toSrcLoc(src_decl, mod), var_ty, .other);
2511025111 break :msg msg;
2511125112 };
25112 return sema.failWithOwnedErrorMsg(msg);
25113 return sema.failWithOwnedErrorMsg(block, msg);
2511325114 }
2511425115 } else {
2511525116 if (var_ty.zigTypeTag(mod) == .Opaque) {
......@@ -25136,7 +25137,7 @@ fn validateVarType(
2513625137
2513725138 break :msg msg;
2513825139 };
25139 return sema.failWithOwnedErrorMsg(msg);
25140 return sema.failWithOwnedErrorMsg(block, msg);
2514025141}
2514125142
2514225143const TypeSet = std.AutoHashMapUnmanaged(InternPool.Index, void);
......@@ -25822,7 +25823,7 @@ fn emitBackwardBranch(sema: *Sema, block: *Block, src: LazySrcLoc) !void {
2582225823 "use @setEvalBranchQuota() to raise the branch limit from {d}",
2582325824 .{sema.branch_quota},
2582425825 );
25825 return sema.failWithOwnedErrorMsg(msg);
25826 return sema.failWithOwnedErrorMsg(block, msg);
2582625827 }
2582725828}
2582825829
......@@ -25929,7 +25930,7 @@ fn fieldVal(
2592925930 try sema.addDeclaredHereNote(msg, child_type);
2593025931 break :msg msg;
2593125932 };
25932 return sema.failWithOwnedErrorMsg(msg);
25933 return sema.failWithOwnedErrorMsg(block, msg);
2593325934 },
2593425935 .inferred_error_set_type => {
2593525936 return sema.fail(block, src, "TODO handle inferred error sets here", .{});
......@@ -25993,7 +25994,7 @@ fn fieldVal(
2599325994 if (child_type.zigTypeTag(mod) == .Array) try sema.errNote(block, src, msg, "array values have 'len' member", .{});
2599425995 break :msg msg;
2599525996 };
25996 return sema.failWithOwnedErrorMsg(msg);
25997 return sema.failWithOwnedErrorMsg(block, msg);
2599725998 },
2599825999 }
2599926000 },
......@@ -26412,7 +26413,7 @@ fn fieldCallBind(
2641226413 }
2641326414 break :msg msg;
2641426415 };
26415 return sema.failWithOwnedErrorMsg(msg);
26416 return sema.failWithOwnedErrorMsg(block, msg);
2641626417}
2641726418
2641826419fn finishFieldCallBind(
......@@ -26476,7 +26477,7 @@ fn namespaceLookup(
2647626477 try mod.errNoteNonLazy(decl.srcLoc(mod), msg, "declared here", .{});
2647726478 break :msg msg;
2647826479 };
26479 return sema.failWithOwnedErrorMsg(msg);
26480 return sema.failWithOwnedErrorMsg(block, msg);
2648026481 }
2648126482 return decl_index;
2648226483 }
......@@ -26834,7 +26835,7 @@ fn unionFieldPtr(
2683426835 try sema.addDeclaredHereNote(msg, union_ty);
2683526836 break :msg msg;
2683626837 };
26837 return sema.failWithOwnedErrorMsg(msg);
26838 return sema.failWithOwnedErrorMsg(block, msg);
2683826839 }
2683926840
2684026841 if (try sema.resolveDefinedValue(block, src, union_ptr)) |union_ptr_val| ct: {
......@@ -26860,7 +26861,7 @@ fn unionFieldPtr(
2686026861 try sema.addDeclaredHereNote(msg, union_ty);
2686126862 break :msg msg;
2686226863 };
26863 return sema.failWithOwnedErrorMsg(msg);
26864 return sema.failWithOwnedErrorMsg(block, msg);
2686426865 }
2686526866 },
2686626867 .Packed, .Extern => {},
......@@ -26932,7 +26933,7 @@ fn unionFieldVal(
2693226933 try sema.addDeclaredHereNote(msg, union_ty);
2693326934 break :msg msg;
2693426935 };
26935 return sema.failWithOwnedErrorMsg(msg);
26936 return sema.failWithOwnedErrorMsg(block, msg);
2693626937 }
2693726938 },
2693826939 .Packed, .Extern => {
......@@ -27155,7 +27156,7 @@ fn validateRuntimeElemAccess(
2715527156
2715627157 break :msg msg;
2715727158 };
27158 return sema.failWithOwnedErrorMsg(msg);
27159 return sema.failWithOwnedErrorMsg(block, msg);
2715927160 }
2716027161}
2716127162
......@@ -27886,7 +27887,7 @@ fn coerceExtra(
2788627887 try sema.errNote(block, dest_ty_src, err_msg, "pointers to tuples can only coerce to constant pointers", .{});
2788727888 break :err_msg err_msg;
2788827889 };
27889 return sema.failWithOwnedErrorMsg(err_msg);
27890 return sema.failWithOwnedErrorMsg(block, err_msg);
2789027891 }
2789127892 return sema.coerceTupleToSlicePtrs(block, dest_ty, dest_ty_src, inst, inst_src);
2789227893 },
......@@ -28064,7 +28065,7 @@ fn coerceExtra(
2806428065 try sema.addDeclaredHereNote(msg, dest_ty);
2806528066 break :msg msg;
2806628067 };
28067 return sema.failWithOwnedErrorMsg(msg);
28068 return sema.failWithOwnedErrorMsg(block, msg);
2806828069 };
2806928070 return Air.internedToRef((try mod.enumValueFieldIndex(dest_ty, @intCast(field_index))).toIntern());
2807028071 },
......@@ -28195,7 +28196,7 @@ fn coerceExtra(
2819528196 try mod.errNoteNonLazy(ret_ty_src.toSrcLoc(src_decl, mod), msg, "'noreturn' declared here", .{});
2819628197 break :msg msg;
2819728198 };
28198 return sema.failWithOwnedErrorMsg(msg);
28199 return sema.failWithOwnedErrorMsg(block, msg);
2819928200 }
2820028201
2820128202 const msg = msg: {
......@@ -28241,7 +28242,7 @@ fn coerceExtra(
2824128242
2824228243 break :msg msg;
2824328244 };
28244 return sema.failWithOwnedErrorMsg(msg);
28245 return sema.failWithOwnedErrorMsg(block, msg);
2824528246}
2824628247
2824728248fn coerceInMemory(
......@@ -29217,7 +29218,7 @@ fn coerceVarArgParam(
2921729218 try sema.addDeclaredHereNote(msg, coerced_ty);
2921829219 break :msg msg;
2921929220 };
29220 return sema.failWithOwnedErrorMsg(msg);
29221 return sema.failWithOwnedErrorMsg(block, msg);
2922129222 }
2922229223 return coerced;
2922329224}
......@@ -30472,7 +30473,7 @@ fn coerceEnumToUnion(
3047230473 try sema.addDeclaredHereNote(msg, union_ty);
3047330474 break :msg msg;
3047430475 };
30475 return sema.failWithOwnedErrorMsg(msg);
30476 return sema.failWithOwnedErrorMsg(block, msg);
3047630477 };
3047730478
3047830479 const enum_tag = try sema.coerce(block, tag_ty, inst, inst_src);
......@@ -30486,7 +30487,7 @@ fn coerceEnumToUnion(
3048630487 try sema.addDeclaredHereNote(msg, union_ty);
3048730488 break :msg msg;
3048830489 };
30489 return sema.failWithOwnedErrorMsg(msg);
30490 return sema.failWithOwnedErrorMsg(block, msg);
3049030491 };
3049130492
3049230493 const union_obj = mod.typeToUnion(union_ty).?;
......@@ -30504,7 +30505,7 @@ fn coerceEnumToUnion(
3050430505 try sema.addDeclaredHereNote(msg, union_ty);
3050530506 break :msg msg;
3050630507 };
30507 return sema.failWithOwnedErrorMsg(msg);
30508 return sema.failWithOwnedErrorMsg(block, msg);
3050830509 }
3050930510 const opv = (try sema.typeHasOnePossibleValue(field_ty)) orelse {
3051030511 const msg = msg: {
......@@ -30521,7 +30522,7 @@ fn coerceEnumToUnion(
3052130522 try sema.addDeclaredHereNote(msg, union_ty);
3052230523 break :msg msg;
3052330524 };
30524 return sema.failWithOwnedErrorMsg(msg);
30525 return sema.failWithOwnedErrorMsg(block, msg);
3052530526 };
3052630527
3052730528 return Air.internedToRef((try mod.unionValue(union_ty, val, opv)).toIntern());
......@@ -30538,7 +30539,7 @@ fn coerceEnumToUnion(
3053830539 try sema.addDeclaredHereNote(msg, tag_ty);
3053930540 break :msg msg;
3054030541 };
30541 return sema.failWithOwnedErrorMsg(msg);
30542 return sema.failWithOwnedErrorMsg(block, msg);
3054230543 }
3054330544
3054430545 const union_obj = mod.typeToUnion(union_ty).?;
......@@ -30562,7 +30563,7 @@ fn coerceEnumToUnion(
3056230563 if (msg) |some| {
3056330564 msg = null;
3056430565 try sema.addDeclaredHereNote(some, union_ty);
30565 return sema.failWithOwnedErrorMsg(some);
30566 return sema.failWithOwnedErrorMsg(block, some);
3056630567 }
3056730568 }
3056830569
......@@ -30592,7 +30593,7 @@ fn coerceEnumToUnion(
3059230593 try sema.addDeclaredHereNote(msg, union_ty);
3059330594 break :msg msg;
3059430595 };
30595 return sema.failWithOwnedErrorMsg(msg);
30596 return sema.failWithOwnedErrorMsg(block, msg);
3059630597}
3059730598
3059830599fn coerceAnonStructToUnion(
......@@ -30649,7 +30650,7 @@ fn coerceAnonStructToUnion(
3064930650 try sema.addDeclaredHereNote(msg, union_ty);
3065030651 break :msg msg;
3065130652 };
30652 return sema.failWithOwnedErrorMsg(msg);
30653 return sema.failWithOwnedErrorMsg(block, msg);
3065330654 },
3065430655 }
3065530656}
......@@ -30721,7 +30722,7 @@ fn coerceArrayLike(
3072130722 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});
3072230723 break :msg msg;
3072330724 };
30724 return sema.failWithOwnedErrorMsg(msg);
30725 return sema.failWithOwnedErrorMsg(block, msg);
3072530726 }
3072630727
3072730728 const dest_elem_ty = dest_ty.childType(mod);
......@@ -30780,7 +30781,7 @@ fn coerceTupleToArray(
3078030781 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});
3078130782 break :msg msg;
3078230783 };
30783 return sema.failWithOwnedErrorMsg(msg);
30784 return sema.failWithOwnedErrorMsg(block, msg);
3078430785 }
3078530786
3078630787 const dest_elems = try sema.usizeCast(block, dest_ty_src, dest_len);
......@@ -30967,7 +30968,7 @@ fn coerceTupleToStruct(
3096730968 if (root_msg) |msg| {
3096830969 try sema.addDeclaredHereNote(msg, struct_ty);
3096930970 root_msg = null;
30970 return sema.failWithOwnedErrorMsg(msg);
30971 return sema.failWithOwnedErrorMsg(block, msg);
3097130972 }
3097230973
3097330974 if (runtime_src) |rs| {
......@@ -31113,7 +31114,7 @@ fn coerceTupleToTuple(
3111331114 if (root_msg) |msg| {
3111431115 try sema.addDeclaredHereNote(msg, tuple_ty);
3111531116 root_msg = null;
31116 return sema.failWithOwnedErrorMsg(msg);
31117 return sema.failWithOwnedErrorMsg(block, msg);
3111731118 }
3111831119
3111931120 if (runtime_src) |rs| {
......@@ -31174,7 +31175,7 @@ fn ensureDeclAnalyzed(sema: *Sema, decl_index: Decl.Index) CompileError!void {
3117431175 const decl = mod.declPtr(decl_index);
3117531176 if (decl.analysis == .in_progress) {
3117631177 const msg = try Module.ErrorMsg.create(sema.gpa, decl.srcLoc(mod), "dependency loop detected", .{});
31177 return sema.failWithOwnedErrorMsg(msg);
31178 return sema.failWithOwnedErrorMsg(null, msg);
3117831179 }
3117931180
3118031181 mod.ensureDeclAnalyzed(decl_index) catch |err| {
......@@ -31866,7 +31867,7 @@ fn analyzeSlice(
3186631867
3186731868 break :msg msg;
3186831869 };
31869 return sema.failWithOwnedErrorMsg(msg);
31870 return sema.failWithOwnedErrorMsg(block, msg);
3187031871 }
3187131872 } else {
3187231873 runtime_src = ptr_src;
......@@ -32872,7 +32873,7 @@ fn resolvePeerTypes(
3287232873 .success => |ty| return ty,
3287332874 else => |result| {
3287432875 const msg = try result.report(sema, block, src, instructions, candidate_srcs);
32875 return sema.failWithOwnedErrorMsg(msg);
32876 return sema.failWithOwnedErrorMsg(block, msg);
3287632877 },
3287732878 }
3287832879}
......@@ -34230,7 +34231,7 @@ fn resolveStructLayout(sema: *Sema, ty: Type) CompileError!void {
3423034231 "struct '{}' depends on itself",
3423134232 .{ty.fmt(mod)},
3423234233 );
34233 return sema.failWithOwnedErrorMsg(msg);
34234 return sema.failWithOwnedErrorMsg(null, msg);
3423434235 },
3423534236 .have_layout, .fully_resolved_wip, .fully_resolved => return,
3423634237 }
......@@ -34265,7 +34266,7 @@ fn resolveStructLayout(sema: *Sema, ty: Type) CompileError!void {
3426534266 "struct layout depends on it having runtime bits",
3426634267 .{},
3426734268 );
34268 return sema.failWithOwnedErrorMsg(msg);
34269 return sema.failWithOwnedErrorMsg(null, msg);
3426934270 }
3427034271
3427134272 if (struct_obj.layout == .Auto and !struct_obj.is_tuple and
......@@ -34442,7 +34443,7 @@ fn checkIndexable(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) !void {
3444234443 try sema.errNote(block, src, msg, "operand must be an array, slice, tuple, or vector", .{});
3444334444 break :msg msg;
3444434445 };
34445 return sema.failWithOwnedErrorMsg(msg);
34446 return sema.failWithOwnedErrorMsg(block, msg);
3444634447 }
3444734448}
3444834449
......@@ -34465,7 +34466,7 @@ fn checkMemOperand(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) !void
3446534466 try sema.errNote(block, src, msg, "operand must be a slice, a many pointer or a pointer to an array", .{});
3446634467 break :msg msg;
3446734468 };
34468 return sema.failWithOwnedErrorMsg(msg);
34469 return sema.failWithOwnedErrorMsg(block, msg);
3446934470}
3447034471
3447134472fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void {
......@@ -34482,7 +34483,7 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void {
3448234483 "union '{}' depends on itself",
3448334484 .{ty.fmt(mod)},
3448434485 );
34485 return sema.failWithOwnedErrorMsg(msg);
34486 return sema.failWithOwnedErrorMsg(null, msg);
3448634487 },
3448734488 .have_layout, .fully_resolved_wip, .fully_resolved => return,
3448834489 }
......@@ -34513,7 +34514,7 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void {
3451334514 "union layout depends on it having runtime bits",
3451434515 .{},
3451534516 );
34516 return sema.failWithOwnedErrorMsg(msg);
34517 return sema.failWithOwnedErrorMsg(null, msg);
3451734518 }
3451834519}
3451934520
......@@ -34771,7 +34772,7 @@ fn resolveTypeFieldsStruct(
3477134772 "struct '{}' depends on itself",
3477234773 .{ty.fmt(sema.mod)},
3477334774 );
34774 return sema.failWithOwnedErrorMsg(msg);
34775 return sema.failWithOwnedErrorMsg(null, msg);
3477534776 },
3477634777 .have_field_types,
3477734778 .have_layout,
......@@ -34811,7 +34812,7 @@ fn resolveTypeFieldsUnion(sema: *Sema, ty: Type, union_type: InternPool.Key.Unio
3481134812 "union '{}' depends on itself",
3481234813 .{ty.fmt(mod)},
3481334814 );
34814 return sema.failWithOwnedErrorMsg(msg);
34815 return sema.failWithOwnedErrorMsg(null, msg);
3481534816 },
3481634817 .have_field_types,
3481734818 .have_layout,
......@@ -34865,7 +34866,7 @@ fn resolveInferredErrorSet(
3486534866 try sema.mod.errNoteNonLazy(ies_func_owner_decl.srcLoc(mod), msg, "generic function declared here", .{});
3486634867 break :msg msg;
3486734868 };
34868 return sema.failWithOwnedErrorMsg(msg);
34869 return sema.failWithOwnedErrorMsg(block, msg);
3486934870 }
3487034871 // In this case we are dealing with the actual InferredErrorSet object that
3487134872 // corresponds to the function, not one created to track an inline/comptime call.
......@@ -35125,7 +35126,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
3512535126 try sema.errNote(&block_scope, src, msg, "struct declared here", .{});
3512635127 break :msg msg;
3512735128 };
35128 return sema.failWithOwnedErrorMsg(msg);
35129 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3512935130 }
3513035131 gop.value_ptr.* = .{
3513135132 .ty = Type.noreturn,
......@@ -35201,7 +35202,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
3520135202 try sema.addDeclaredHereNote(msg, field_ty);
3520235203 break :msg msg;
3520335204 };
35204 return sema.failWithOwnedErrorMsg(msg);
35205 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3520535206 }
3520635207 if (field_ty.zigTypeTag(mod) == .NoReturn) {
3520735208 const msg = msg: {
......@@ -35215,7 +35216,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
3521535216 try sema.addDeclaredHereNote(msg, field_ty);
3521635217 break :msg msg;
3521735218 };
35218 return sema.failWithOwnedErrorMsg(msg);
35219 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3521935220 }
3522035221 if (struct_obj.layout == .Extern and !try sema.validateExternType(field.ty, .struct_field)) {
3522135222 const msg = msg: {
......@@ -35231,7 +35232,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
3523135232 try sema.addDeclaredHereNote(msg, field.ty);
3523235233 break :msg msg;
3523335234 };
35234 return sema.failWithOwnedErrorMsg(msg);
35235 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3523535236 } else if (struct_obj.layout == .Packed and !(validatePackedType(field.ty, mod))) {
3523635237 const msg = msg: {
3523735238 const ty_src = mod.fieldSrcLoc(struct_obj.owner_decl, .{
......@@ -35246,7 +35247,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
3524635247 try sema.addDeclaredHereNote(msg, field.ty);
3524735248 break :msg msg;
3524835249 };
35249 return sema.failWithOwnedErrorMsg(msg);
35250 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3525035251 }
3525135252
3525235253 if (zir_field.align_body_len > 0) {
......@@ -35434,7 +35435,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3543435435 });
3543535436 break :msg msg;
3543635437 };
35437 return sema.failWithOwnedErrorMsg(msg);
35438 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3543835439 }
3543935440 enum_field_names = try sema.arena.alloc(InternPool.NullTerminatedString, fields_len);
3544035441 try enum_field_vals.ensureTotalCapacity(sema.arena, fields_len);
......@@ -35549,7 +35550,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3554935550 try sema.errNote(&block_scope, other_field_src, msg, "other occurrence here", .{});
3555035551 break :msg msg;
3555135552 };
35552 return sema.failWithOwnedErrorMsg(msg);
35553 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3555335554 }
3555435555 }
3555535556
......@@ -35594,7 +35595,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3559435595 try sema.errNote(&block_scope, src, msg, "union declared here", .{});
3559535596 break :msg msg;
3559635597 };
35597 return sema.failWithOwnedErrorMsg(msg);
35598 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3559835599 }
3559935600
3560035601 if (explicit_tags_seen.len > 0) {
......@@ -35612,7 +35613,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3561235613 try sema.addDeclaredHereNote(msg, union_type.tagTypePtr(ip).toType());
3561335614 break :msg msg;
3561435615 };
35615 return sema.failWithOwnedErrorMsg(msg);
35616 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3561635617 };
3561735618 // No check for duplicate because the check already happened in order
3561835619 // to create the enum type in the first place.
......@@ -35634,7 +35635,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3563435635 try sema.errNote(&block_scope, enum_field_src, msg, "enum field here", .{});
3563535636 break :msg msg;
3563635637 };
35637 return sema.failWithOwnedErrorMsg(msg);
35638 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3563835639 }
3563935640 }
3564035641
......@@ -35650,7 +35651,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3565035651 try sema.addDeclaredHereNote(msg, field_ty);
3565135652 break :msg msg;
3565235653 };
35653 return sema.failWithOwnedErrorMsg(msg);
35654 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3565435655 }
3565535656 const layout = union_type.getLayout(ip);
3565635657 if (layout == .Extern and
......@@ -35669,7 +35670,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3566935670 try sema.addDeclaredHereNote(msg, field_ty);
3567035671 break :msg msg;
3567135672 };
35672 return sema.failWithOwnedErrorMsg(msg);
35673 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3567335674 } else if (layout == .Packed and !validatePackedType(field_ty, mod)) {
3567435675 const msg = msg: {
3567535676 const ty_src = mod.fieldSrcLoc(union_type.decl, .{
......@@ -35684,7 +35685,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3568435685 try sema.addDeclaredHereNote(msg, field_ty);
3568535686 break :msg msg;
3568635687 };
35687 return sema.failWithOwnedErrorMsg(msg);
35688 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3568835689 }
3568935690
3569035691 field_types.appendAssumeCapacity(field_ty.toIntern());
......@@ -35728,7 +35729,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un
3572835729 try sema.addDeclaredHereNote(msg, union_type.tagTypePtr(ip).toType());
3572935730 break :msg msg;
3573035731 };
35731 return sema.failWithOwnedErrorMsg(msg);
35732 return sema.failWithOwnedErrorMsg(&block_scope, msg);
3573235733 }
3573335734 } else if (enum_field_vals.count() > 0) {
3573435735 const enum_ty = try sema.generateUnionTagTypeNumbered(&block_scope, enum_field_names, enum_field_vals.keys(), mod.declPtr(union_type.decl));
......@@ -36139,7 +36140,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
3613936140 .{ty.fmt(mod)},
3614036141 );
3614136142 try sema.addFieldErrNote(ty, i, msg, "while checking this field", .{});
36142 return sema.failWithOwnedErrorMsg(msg);
36143 return sema.failWithOwnedErrorMsg(null, msg);
3614336144 }
3614436145 if (try sema.typeHasOnePossibleValue(field.ty)) |field_opv| {
3614536146 field_val.* = try field_opv.intern(field.ty, mod);
......@@ -36193,7 +36194,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
3619336194 .{ty.fmt(mod)},
3619436195 );
3619536196 try sema.addFieldErrNote(ty, 0, msg, "while checking this field", .{});
36196 return sema.failWithOwnedErrorMsg(msg);
36197 return sema.failWithOwnedErrorMsg(null, msg);
3619736198 }
3619836199 const val_val = (try sema.typeHasOnePossibleValue(only_field_ty)) orelse
3619936200 return null;