| ... | ... | @@ -1460,7 +1460,7 @@ fn analyzeBodyInner( |
| 1460 | 1460 | try sema.errNote(block, runtime_src, msg, "runtime control flow here", .{}); |
| 1461 | 1461 | break :msg msg; |
| 1462 | 1462 | }; |
| 1463 | | return sema.failWithOwnedErrorMsg(msg); |
| 1463 | return sema.failWithOwnedErrorMsg(block, msg); |
| 1464 | 1464 | } |
| 1465 | 1465 | } |
| 1466 | 1466 | i += 1; |
| ... | ... | @@ -1910,7 +1910,7 @@ fn resolveDestType( |
| 1910 | 1910 | try sema.errNote(block, src, msg, "use @as to provide explicit result type", .{}); |
| 1911 | 1911 | break :msg msg; |
| 1912 | 1912 | }; |
| 1913 | | return sema.failWithOwnedErrorMsg(msg); |
| 1913 | return sema.failWithOwnedErrorMsg(block, msg); |
| 1914 | 1914 | }, |
| 1915 | 1915 | else => |e| return e, |
| 1916 | 1916 | }; |
| ... | ... | @@ -2158,7 +2158,7 @@ fn failWithNeededComptime(sema: *Sema, block: *Block, src: LazySrcLoc, reason: N |
| 2158 | 2158 | } |
| 2159 | 2159 | break :msg msg; |
| 2160 | 2160 | }; |
| 2161 | | return sema.failWithOwnedErrorMsg(msg); |
| 2161 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2162 | 2162 | } |
| 2163 | 2163 | |
| 2164 | 2164 | fn failWithUseOfUndef(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError { |
| ... | ... | @@ -2191,7 +2191,7 @@ fn failWithArrayInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty |
| 2191 | 2191 | } |
| 2192 | 2192 | break :msg msg; |
| 2193 | 2193 | }; |
| 2194 | | return sema.failWithOwnedErrorMsg(msg); |
| 2194 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2195 | 2195 | } |
| 2196 | 2196 | |
| 2197 | 2197 | fn failWithStructInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) CompileError { |
| ... | ... | @@ -2223,7 +2223,7 @@ fn failWithIntegerOverflow(sema: *Sema, block: *Block, src: LazySrcLoc, int_ty: |
| 2223 | 2223 | try sema.errNote(block, src, msg, "when computing vector element at index '{d}'", .{vector_index}); |
| 2224 | 2224 | break :msg msg; |
| 2225 | 2225 | }; |
| 2226 | | return sema.failWithOwnedErrorMsg(msg); |
| 2226 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2227 | 2227 | } |
| 2228 | 2228 | return sema.fail(block, src, "overflow of integer type '{}' with value '{}'", .{ |
| 2229 | 2229 | int_ty.fmt(sema.mod), val.fmtValue(int_ty, sema.mod), |
| ... | ... | @@ -2244,7 +2244,7 @@ fn failWithInvalidComptimeFieldStore(sema: *Sema, block: *Block, init_src: LazyS |
| 2244 | 2244 | try mod.errNoteNonLazy(default_value_src, msg, "default value set here", .{}); |
| 2245 | 2245 | break :msg msg; |
| 2246 | 2246 | }; |
| 2247 | | return sema.failWithOwnedErrorMsg(msg); |
| 2247 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2248 | 2248 | } |
| 2249 | 2249 | |
| 2250 | 2250 | fn failWithUseOfAsync(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError { |
| ... | ... | @@ -2253,7 +2253,7 @@ fn failWithUseOfAsync(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError |
| 2253 | 2253 | errdefer msg.destroy(sema.gpa); |
| 2254 | 2254 | break :msg msg; |
| 2255 | 2255 | }; |
| 2256 | | return sema.failWithOwnedErrorMsg(msg); |
| 2256 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2257 | 2257 | } |
| 2258 | 2258 | |
| 2259 | 2259 | fn failWithInvalidFieldAccess( |
| ... | ... | @@ -2275,7 +2275,7 @@ fn failWithInvalidFieldAccess( |
| 2275 | 2275 | try sema.errNote(block, src, msg, "consider using '.?', 'orelse', or 'if'", .{}); |
| 2276 | 2276 | break :msg msg; |
| 2277 | 2277 | }; |
| 2278 | | return sema.failWithOwnedErrorMsg(msg); |
| 2278 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2279 | 2279 | } else if (inner_ty.zigTypeTag(mod) == .ErrorUnion) err: { |
| 2280 | 2280 | const child_ty = inner_ty.errorUnionPayload(mod); |
| 2281 | 2281 | if (!typeSupportsFieldAccess(mod, child_ty, field_name)) break :err; |
| ... | ... | @@ -2285,7 +2285,7 @@ fn failWithInvalidFieldAccess( |
| 2285 | 2285 | try sema.errNote(block, src, msg, "consider using 'try', 'catch', or 'if'", .{}); |
| 2286 | 2286 | break :msg msg; |
| 2287 | 2287 | }; |
| 2288 | | return sema.failWithOwnedErrorMsg(msg); |
| 2288 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2289 | 2289 | } |
| 2290 | 2290 | return sema.fail(block, src, "type '{}' does not support field access", .{object_ty.fmt(sema.mod)}); |
| 2291 | 2291 | } |
| ... | ... | @@ -2386,10 +2386,11 @@ pub fn fail( |
| 2386 | 2386 | args: anytype, |
| 2387 | 2387 | ) CompileError { |
| 2388 | 2388 | const err_msg = try sema.errMsg(block, src, format, args); |
| 2389 | | return sema.failWithOwnedErrorMsg(err_msg); |
| 2389 | return sema.failWithOwnedErrorMsg(block, err_msg); |
| 2390 | 2390 | } |
| 2391 | 2391 | |
| 2392 | | fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError { |
| 2392 | fn failWithOwnedErrorMsg(sema: *Sema, block: ?*Block, err_msg: *Module.ErrorMsg) CompileError { |
| 2393 | _ = block; |
| 2393 | 2394 | @setCold(true); |
| 2394 | 2395 | const gpa = sema.gpa; |
| 2395 | 2396 | const mod = sema.mod; |
| ... | ... | @@ -3226,7 +3227,7 @@ fn zirEnumDecl( |
| 3226 | 3227 | try sema.errNote(block, other_field_src, msg, "other field here", .{}); |
| 3227 | 3228 | break :msg msg; |
| 3228 | 3229 | }; |
| 3229 | | return sema.failWithOwnedErrorMsg(msg); |
| 3230 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3230 | 3231 | } |
| 3231 | 3232 | |
| 3232 | 3233 | const tag_overflow = if (has_tag_value) overflow: { |
| ... | ... | @@ -3260,7 +3261,7 @@ fn zirEnumDecl( |
| 3260 | 3261 | try sema.errNote(block, other_field_src, msg, "other occurrence here", .{}); |
| 3261 | 3262 | break :msg msg; |
| 3262 | 3263 | }; |
| 3263 | | return sema.failWithOwnedErrorMsg(msg); |
| 3264 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3264 | 3265 | } |
| 3265 | 3266 | break :overflow false; |
| 3266 | 3267 | } else if (any_values) overflow: { |
| ... | ... | @@ -3279,7 +3280,7 @@ fn zirEnumDecl( |
| 3279 | 3280 | try sema.errNote(block, other_field_src, msg, "other occurrence here", .{}); |
| 3280 | 3281 | break :msg msg; |
| 3281 | 3282 | }; |
| 3282 | | return sema.failWithOwnedErrorMsg(msg); |
| 3283 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3283 | 3284 | } |
| 3284 | 3285 | break :overflow false; |
| 3285 | 3286 | } else overflow: { |
| ... | ... | @@ -3297,7 +3298,7 @@ fn zirEnumDecl( |
| 3297 | 3298 | const msg = try sema.errMsg(block, value_src, "enumeration value '{}' too large for type '{}'", .{ |
| 3298 | 3299 | last_tag_val.?.fmtValue(int_tag_ty, mod), int_tag_ty.fmt(mod), |
| 3299 | 3300 | }); |
| 3300 | | return sema.failWithOwnedErrorMsg(msg); |
| 3301 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3301 | 3302 | } |
| 3302 | 3303 | } |
| 3303 | 3304 | return decl_val; |
| ... | ... | @@ -3570,7 +3571,7 @@ fn ensureResultUsed( |
| 3570 | 3571 | try sema.errNote(block, src, msg, "consider using 'try', 'catch', or 'if'", .{}); |
| 3571 | 3572 | break :msg msg; |
| 3572 | 3573 | }; |
| 3573 | | return sema.failWithOwnedErrorMsg(msg); |
| 3574 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3574 | 3575 | }, |
| 3575 | 3576 | else => { |
| 3576 | 3577 | const msg = msg: { |
| ... | ... | @@ -3580,7 +3581,7 @@ fn ensureResultUsed( |
| 3580 | 3581 | try sema.errNote(block, src, msg, "this error can be suppressed by assigning the value to '_'", .{}); |
| 3581 | 3582 | break :msg msg; |
| 3582 | 3583 | }; |
| 3583 | | return sema.failWithOwnedErrorMsg(msg); |
| 3584 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3584 | 3585 | }, |
| 3585 | 3586 | } |
| 3586 | 3587 | } |
| ... | ... | @@ -3602,7 +3603,7 @@ fn zirEnsureResultNonError(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Com |
| 3602 | 3603 | try sema.errNote(block, src, msg, "consider using 'try', 'catch', or 'if'", .{}); |
| 3603 | 3604 | break :msg msg; |
| 3604 | 3605 | }; |
| 3605 | | return sema.failWithOwnedErrorMsg(msg); |
| 3606 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3606 | 3607 | }, |
| 3607 | 3608 | else => return, |
| 3608 | 3609 | } |
| ... | ... | @@ -3630,7 +3631,7 @@ fn zirEnsureErrUnionPayloadVoid(sema: *Sema, block: *Block, inst: Zir.Inst.Index |
| 3630 | 3631 | try sema.errNote(block, src, msg, "payload value can be explicitly ignored with '|_|'", .{}); |
| 3631 | 3632 | break :msg msg; |
| 3632 | 3633 | }; |
| 3633 | | return sema.failWithOwnedErrorMsg(msg); |
| 3634 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3634 | 3635 | } |
| 3635 | 3636 | } |
| 3636 | 3637 | |
| ... | ... | @@ -4269,7 +4270,7 @@ fn zirForLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. |
| 4269 | 4270 | try sema.errNote(block, arg_src, msg, "for loop operand must be a range, array, slice, tuple, or vector", .{}); |
| 4270 | 4271 | break :msg msg; |
| 4271 | 4272 | }; |
| 4272 | | return sema.failWithOwnedErrorMsg(msg); |
| 4273 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4273 | 4274 | } |
| 4274 | 4275 | if (!object_ty.indexableHasLen(mod)) continue; |
| 4275 | 4276 | |
| ... | ... | @@ -4298,7 +4299,7 @@ fn zirForLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. |
| 4298 | 4299 | }); |
| 4299 | 4300 | break :msg msg; |
| 4300 | 4301 | }; |
| 4301 | | return sema.failWithOwnedErrorMsg(msg); |
| 4302 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4302 | 4303 | } |
| 4303 | 4304 | } else { |
| 4304 | 4305 | len = arg_len; |
| ... | ... | @@ -4336,7 +4337,7 @@ fn zirForLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. |
| 4336 | 4337 | } |
| 4337 | 4338 | break :msg msg; |
| 4338 | 4339 | }; |
| 4339 | | return sema.failWithOwnedErrorMsg(msg); |
| 4340 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4340 | 4341 | } |
| 4341 | 4342 | |
| 4342 | 4343 | // Now for the runtime checks. |
| ... | ... | @@ -4511,7 +4512,7 @@ fn validateUnionInit( |
| 4511 | 4512 | try sema.addDeclaredHereNote(msg, union_ty); |
| 4512 | 4513 | break :msg msg; |
| 4513 | 4514 | }; |
| 4514 | | return sema.failWithOwnedErrorMsg(msg); |
| 4515 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4515 | 4516 | } |
| 4516 | 4517 | |
| 4517 | 4518 | if (block.is_comptime and |
| ... | ... | @@ -4678,7 +4679,7 @@ fn validateStructInit( |
| 4678 | 4679 | try sema.errNote(block, other_field_src, msg, "other field here", .{}); |
| 4679 | 4680 | break :msg msg; |
| 4680 | 4681 | }; |
| 4681 | | return sema.failWithOwnedErrorMsg(msg); |
| 4682 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4682 | 4683 | } |
| 4683 | 4684 | found_fields[field_index.*] = field_ptr; |
| 4684 | 4685 | } |
| ... | ... | @@ -4739,7 +4740,7 @@ fn validateStructInit( |
| 4739 | 4740 | ); |
| 4740 | 4741 | } |
| 4741 | 4742 | root_msg = null; |
| 4742 | | return sema.failWithOwnedErrorMsg(msg); |
| 4743 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4743 | 4744 | } |
| 4744 | 4745 | |
| 4745 | 4746 | return; |
| ... | ... | @@ -4869,7 +4870,7 @@ fn validateStructInit( |
| 4869 | 4870 | ); |
| 4870 | 4871 | } |
| 4871 | 4872 | root_msg = null; |
| 4872 | | return sema.failWithOwnedErrorMsg(msg); |
| 4873 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4873 | 4874 | } |
| 4874 | 4875 | |
| 4875 | 4876 | if (struct_is_comptime) { |
| ... | ... | @@ -4973,7 +4974,7 @@ fn zirValidateArrayInit( |
| 4973 | 4974 | |
| 4974 | 4975 | if (root_msg) |msg| { |
| 4975 | 4976 | root_msg = null; |
| 4976 | | return sema.failWithOwnedErrorMsg(msg); |
| 4977 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4977 | 4978 | } |
| 4978 | 4979 | }, |
| 4979 | 4980 | .Array => { |
| ... | ... | @@ -5186,7 +5187,7 @@ fn zirValidateDeref(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErr |
| 5186 | 5187 | try sema.explainWhyTypeIsComptime(msg, src.toSrcLoc(src_decl, mod), elem_ty); |
| 5187 | 5188 | break :msg msg; |
| 5188 | 5189 | }; |
| 5189 | | return sema.failWithOwnedErrorMsg(msg); |
| 5190 | return sema.failWithOwnedErrorMsg(block, msg); |
| 5190 | 5191 | } |
| 5191 | 5192 | } |
| 5192 | 5193 | |
| ... | ... | @@ -5218,7 +5219,7 @@ fn failWithBadMemberAccess( |
| 5218 | 5219 | try sema.addDeclaredHereNote(msg, agg_ty); |
| 5219 | 5220 | break :msg msg; |
| 5220 | 5221 | }; |
| 5221 | | return sema.failWithOwnedErrorMsg(msg); |
| 5222 | return sema.failWithOwnedErrorMsg(block, msg); |
| 5222 | 5223 | } |
| 5223 | 5224 | |
| 5224 | 5225 | fn failWithBadStructFieldAccess( |
| ... | ... | @@ -5244,7 +5245,7 @@ fn failWithBadStructFieldAccess( |
| 5244 | 5245 | try mod.errNoteNonLazy(struct_obj.srcLoc(mod), msg, "struct declared here", .{}); |
| 5245 | 5246 | break :msg msg; |
| 5246 | 5247 | }; |
| 5247 | | return sema.failWithOwnedErrorMsg(msg); |
| 5248 | return sema.failWithOwnedErrorMsg(block, msg); |
| 5248 | 5249 | } |
| 5249 | 5250 | |
| 5250 | 5251 | fn failWithBadUnionFieldAccess( |
| ... | ... | @@ -5271,7 +5272,7 @@ fn failWithBadUnionFieldAccess( |
| 5271 | 5272 | try mod.errNoteNonLazy(decl.srcLoc(mod), msg, "union declared here", .{}); |
| 5272 | 5273 | break :msg msg; |
| 5273 | 5274 | }; |
| 5274 | | return sema.failWithOwnedErrorMsg(msg); |
| 5275 | return sema.failWithOwnedErrorMsg(block, msg); |
| 5275 | 5276 | } |
| 5276 | 5277 | |
| 5277 | 5278 | fn 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 |
| 5737 | 5738 | } |
| 5738 | 5739 | break :msg msg; |
| 5739 | 5740 | }; |
| 5740 | | return sema.failWithOwnedErrorMsg(msg); |
| 5741 | return sema.failWithOwnedErrorMsg(&child_block, msg); |
| 5741 | 5742 | } |
| 5742 | 5743 | const c_import_pkg = Package.create( |
| 5743 | 5744 | sema.gpa, |
| ... | ... | @@ -5918,7 +5919,7 @@ fn analyzeBlockBody( |
| 5918 | 5919 | |
| 5919 | 5920 | break :msg msg; |
| 5920 | 5921 | }; |
| 5921 | | return sema.failWithOwnedErrorMsg(msg); |
| 5922 | return sema.failWithOwnedErrorMsg(child_block, msg); |
| 5922 | 5923 | } |
| 5923 | 5924 | const ty_inst = Air.internedToRef(resolved_ty.toIntern()); |
| 5924 | 5925 | try sema.air_extra.ensureUnusedCapacity(gpa, @typeInfo(Air.Block).Struct.fields.len + |
| ... | ... | @@ -6071,7 +6072,7 @@ pub fn analyzeExport( |
| 6071 | 6072 | try sema.addDeclaredHereNote(msg, exported_decl.ty); |
| 6072 | 6073 | break :msg msg; |
| 6073 | 6074 | }; |
| 6074 | | return sema.failWithOwnedErrorMsg(msg); |
| 6075 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6075 | 6076 | } |
| 6076 | 6077 | |
| 6077 | 6078 | // TODO: some backends might support re-exporting extern decls |
| ... | ... | @@ -6148,7 +6149,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.Inst |
| 6148 | 6149 | try sema.errNote(block, prev_src, msg, "other instance here", .{}); |
| 6149 | 6150 | break :msg msg; |
| 6150 | 6151 | }; |
| 6151 | | return sema.failWithOwnedErrorMsg(msg); |
| 6152 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6152 | 6153 | } |
| 6153 | 6154 | |
| 6154 | 6155 | const ip = &mod.intern_pool; |
| ... | ... | @@ -6465,7 +6466,7 @@ fn lookupInNamespace( |
| 6465 | 6466 | } |
| 6466 | 6467 | break :msg msg; |
| 6467 | 6468 | }; |
| 6468 | | return sema.failWithOwnedErrorMsg(msg); |
| 6469 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6469 | 6470 | }, |
| 6470 | 6471 | } |
| 6471 | 6472 | } else if (namespace.decls.getKeyAdapted(ident_name, Module.DeclAdapter{ .mod = mod })) |decl_index| { |
| ... | ... | @@ -6759,7 +6760,7 @@ fn checkCallArgumentCount( |
| 6759 | 6760 | try sema.errNote(block, func_src, msg, "consider using '.?', 'orelse' or 'if'", .{}); |
| 6760 | 6761 | break :msg msg; |
| 6761 | 6762 | }; |
| 6762 | | return sema.failWithOwnedErrorMsg(msg); |
| 6763 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6763 | 6764 | } |
| 6764 | 6765 | }, |
| 6765 | 6766 | else => {}, |
| ... | ... | @@ -6797,7 +6798,7 @@ fn checkCallArgumentCount( |
| 6797 | 6798 | if (maybe_decl) |fn_decl| try mod.errNoteNonLazy(fn_decl.srcLoc(mod), msg, "function declared here", .{}); |
| 6798 | 6799 | break :msg msg; |
| 6799 | 6800 | }; |
| 6800 | | return sema.failWithOwnedErrorMsg(msg); |
| 6801 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6801 | 6802 | } |
| 6802 | 6803 | |
| 6803 | 6804 | fn callBuiltin( |
| ... | ... | @@ -7131,7 +7132,7 @@ fn analyzeCall( |
| 7131 | 7132 | if (maybe_decl) |fn_decl| try mod.errNoteNonLazy(fn_decl.srcLoc(mod), msg, "function declared here", .{}); |
| 7132 | 7133 | break :msg msg; |
| 7133 | 7134 | }; |
| 7134 | | return sema.failWithOwnedErrorMsg(msg); |
| 7135 | return sema.failWithOwnedErrorMsg(block, msg); |
| 7135 | 7136 | } |
| 7136 | 7137 | |
| 7137 | 7138 | const call_tag: Air.Inst.Tag = switch (modifier) { |
| ... | ... | @@ -7190,7 +7191,7 @@ fn analyzeCall( |
| 7190 | 7191 | } |
| 7191 | 7192 | break :msg msg; |
| 7192 | 7193 | }; |
| 7193 | | return sema.failWithOwnedErrorMsg(msg); |
| 7194 | return sema.failWithOwnedErrorMsg(block, msg); |
| 7194 | 7195 | } |
| 7195 | 7196 | |
| 7196 | 7197 | if (!is_inline_call and is_generic_call) { |
| ... | ... | @@ -7931,7 +7932,7 @@ fn instantiateGenericCall( |
| 7931 | 7932 | } else switch (param_tag) { |
| 7932 | 7933 | .param_comptime, |
| 7933 | 7934 | .param_anytype_comptime, |
| 7934 | | => return sema.failWithOwnedErrorMsg(msg: { |
| 7935 | => return sema.failWithOwnedErrorMsg(block, msg: { |
| 7935 | 7936 | const arg_src = args_info.argSrc(block, arg_index); |
| 7936 | 7937 | const msg = try sema.errMsg(block, arg_src, "runtime-known argument passed to comptime parameter", .{}); |
| 7937 | 7938 | errdefer msg.destroy(sema.gpa); |
| ... | ... | @@ -7946,7 +7947,7 @@ fn instantiateGenericCall( |
| 7946 | 7947 | |
| 7947 | 7948 | .param, |
| 7948 | 7949 | .param_anytype, |
| 7949 | | => return sema.failWithOwnedErrorMsg(msg: { |
| 7950 | => return sema.failWithOwnedErrorMsg(block, msg: { |
| 7950 | 7951 | const arg_src = args_info.argSrc(block, arg_index); |
| 7951 | 7952 | const msg = try sema.errMsg(block, arg_src, "runtime-known argument passed to parameter of comptime-only type", .{}); |
| 7952 | 7953 | errdefer msg.destroy(sema.gpa); |
| ... | ... | @@ -8421,7 +8422,7 @@ fn zirMergeErrorSets(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr |
| 8421 | 8422 | try sema.errNote(block, src, msg, "'||' merges error sets; 'or' performs boolean OR", .{}); |
| 8422 | 8423 | break :msg msg; |
| 8423 | 8424 | }; |
| 8424 | | return sema.failWithOwnedErrorMsg(msg); |
| 8425 | return sema.failWithOwnedErrorMsg(block, msg); |
| 8425 | 8426 | } |
| 8426 | 8427 | const lhs_ty = try sema.analyzeAsType(block, lhs_src, lhs); |
| 8427 | 8428 | 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 |
| 8545 | 8546 | try sema.addDeclaredHereNote(msg, dest_ty); |
| 8546 | 8547 | break :msg msg; |
| 8547 | 8548 | }; |
| 8548 | | return sema.failWithOwnedErrorMsg(msg); |
| 8549 | return sema.failWithOwnedErrorMsg(block, msg); |
| 8549 | 8550 | } |
| 8550 | 8551 | if (int_val.isUndef(mod)) { |
| 8551 | 8552 | return sema.failWithUseOfUndef(block, operand_src); |
| ... | ... | @@ -8562,7 +8563,7 @@ fn zirEnumFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError |
| 8562 | 8563 | try sema.addDeclaredHereNote(msg, dest_ty); |
| 8563 | 8564 | break :msg msg; |
| 8564 | 8565 | }; |
| 8565 | | return sema.failWithOwnedErrorMsg(msg); |
| 8566 | return sema.failWithOwnedErrorMsg(block, msg); |
| 8566 | 8567 | } |
| 8567 | 8568 | return Air.internedToRef((try mod.getCoerced(int_val, dest_ty)).toIntern()); |
| 8568 | 8569 | } |
| ... | ... | @@ -9139,7 +9140,7 @@ fn checkCallConvSupportsVarArgs(sema: *Sema, block: *Block, src: LazySrcLoc, cc: |
| 9139 | 9140 | try sema.errNote(block, src, msg, "supported calling conventions: {}", .{CallingConventionsSupportingVarArgsList{}}); |
| 9140 | 9141 | break :msg msg; |
| 9141 | 9142 | }; |
| 9142 | | return sema.failWithOwnedErrorMsg(msg); |
| 9143 | return sema.failWithOwnedErrorMsg(block, msg); |
| 9143 | 9144 | } |
| 9144 | 9145 | } |
| 9145 | 9146 | |
| ... | ... | @@ -9235,7 +9236,7 @@ fn funcCommon( |
| 9235 | 9236 | try sema.addDeclaredHereNote(msg, param_ty); |
| 9236 | 9237 | break :msg msg; |
| 9237 | 9238 | }; |
| 9238 | | return sema.failWithOwnedErrorMsg(msg); |
| 9239 | return sema.failWithOwnedErrorMsg(block, msg); |
| 9239 | 9240 | } |
| 9240 | 9241 | if (!this_generic and !target_util.fnCallConvAllowsZigTypes(target, cc_resolved) and !try sema.validateExternType(param_ty, .param_ty)) { |
| 9241 | 9242 | const msg = msg: { |
| ... | ... | @@ -9250,7 +9251,7 @@ fn funcCommon( |
| 9250 | 9251 | try sema.addDeclaredHereNote(msg, param_ty); |
| 9251 | 9252 | break :msg msg; |
| 9252 | 9253 | }; |
| 9253 | | return sema.failWithOwnedErrorMsg(msg); |
| 9254 | return sema.failWithOwnedErrorMsg(block, msg); |
| 9254 | 9255 | } |
| 9255 | 9256 | if (is_source_decl and requires_comptime and !param_is_comptime and has_body) { |
| 9256 | 9257 | const msg = msg: { |
| ... | ... | @@ -9265,7 +9266,7 @@ fn funcCommon( |
| 9265 | 9266 | try sema.addDeclaredHereNote(msg, param_ty); |
| 9266 | 9267 | break :msg msg; |
| 9267 | 9268 | }; |
| 9268 | | return sema.failWithOwnedErrorMsg(msg); |
| 9269 | return sema.failWithOwnedErrorMsg(block, msg); |
| 9269 | 9270 | } |
| 9270 | 9271 | if (is_source_decl and !this_generic and is_noalias and |
| 9271 | 9272 | !(param_ty.zigTypeTag(mod) == .Pointer or param_ty.isPtrLikeOptional(mod))) |
| ... | ... | @@ -9527,7 +9528,7 @@ fn finishFunc( |
| 9527 | 9528 | try sema.addDeclaredHereNote(msg, return_type); |
| 9528 | 9529 | break :msg msg; |
| 9529 | 9530 | }; |
| 9530 | | return sema.failWithOwnedErrorMsg(msg); |
| 9531 | return sema.failWithOwnedErrorMsg(block, msg); |
| 9531 | 9532 | } |
| 9532 | 9533 | if (!ret_poison and !target_util.fnCallConvAllowsZigTypes(target, cc_resolved) and |
| 9533 | 9534 | !try sema.validateExternType(return_type, .ret_ty)) |
| ... | ... | @@ -9544,7 +9545,7 @@ fn finishFunc( |
| 9544 | 9545 | try sema.addDeclaredHereNote(msg, return_type); |
| 9545 | 9546 | break :msg msg; |
| 9546 | 9547 | }; |
| 9547 | | return sema.failWithOwnedErrorMsg(msg); |
| 9548 | return sema.failWithOwnedErrorMsg(block, msg); |
| 9548 | 9549 | } |
| 9549 | 9550 | |
| 9550 | 9551 | // If the return type is comptime-only but not dependent on parameters then |
| ... | ... | @@ -9584,7 +9585,7 @@ fn finishFunc( |
| 9584 | 9585 | } |
| 9585 | 9586 | } |
| 9586 | 9587 | } |
| 9587 | | return sema.failWithOwnedErrorMsg(msg); |
| 9588 | return sema.failWithOwnedErrorMsg(block, msg); |
| 9588 | 9589 | } |
| 9589 | 9590 | |
| 9590 | 9591 | const arch = target.cpu.arch; |
| ... | ... | @@ -10125,7 +10126,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 10125 | 10126 | |
| 10126 | 10127 | break :msg msg; |
| 10127 | 10128 | }; |
| 10128 | | return sema.failWithOwnedErrorMsg(msg); |
| 10129 | return sema.failWithOwnedErrorMsg(block, msg); |
| 10129 | 10130 | }, |
| 10130 | 10131 | |
| 10131 | 10132 | .Pointer => { |
| ... | ... | @@ -10140,7 +10141,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 10140 | 10141 | |
| 10141 | 10142 | break :msg msg; |
| 10142 | 10143 | }; |
| 10143 | | return sema.failWithOwnedErrorMsg(msg); |
| 10144 | return sema.failWithOwnedErrorMsg(block, msg); |
| 10144 | 10145 | }, |
| 10145 | 10146 | .Struct, .Union => if (dest_ty.containerLayout(mod) == .Auto) { |
| 10146 | 10147 | const container = switch (dest_ty.zigTypeTag(mod)) { |
| ... | ... | @@ -10189,7 +10190,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 10189 | 10190 | |
| 10190 | 10191 | break :msg msg; |
| 10191 | 10192 | }; |
| 10192 | | return sema.failWithOwnedErrorMsg(msg); |
| 10193 | return sema.failWithOwnedErrorMsg(block, msg); |
| 10193 | 10194 | }, |
| 10194 | 10195 | .Pointer => { |
| 10195 | 10196 | const msg = msg: { |
| ... | ... | @@ -10203,7 +10204,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 10203 | 10204 | |
| 10204 | 10205 | break :msg msg; |
| 10205 | 10206 | }; |
| 10206 | | return sema.failWithOwnedErrorMsg(msg); |
| 10207 | return sema.failWithOwnedErrorMsg(block, msg); |
| 10207 | 10208 | }, |
| 10208 | 10209 | .Struct, .Union => if (operand_ty.containerLayout(mod) == .Auto) { |
| 10209 | 10210 | const container = switch (operand_ty.zigTypeTag(mod)) { |
| ... | ... | @@ -10354,7 +10355,7 @@ fn zirElemPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 10354 | 10355 | } |
| 10355 | 10356 | break :msg msg; |
| 10356 | 10357 | }; |
| 10357 | | return sema.failWithOwnedErrorMsg(msg); |
| 10358 | return sema.failWithOwnedErrorMsg(block, msg); |
| 10358 | 10359 | } |
| 10359 | 10360 | return sema.elemPtrOneLayerOnly(block, src, array_ptr, elem_index, src, false, false); |
| 10360 | 10361 | } |
| ... | ... | @@ -10620,7 +10621,7 @@ const SwitchProngAnalysis = struct { |
| 10620 | 10621 | try sema.addDeclaredHereNote(msg, operand_ty); |
| 10621 | 10622 | break :msg msg; |
| 10622 | 10623 | }; |
| 10623 | | return sema.failWithOwnedErrorMsg(msg); |
| 10624 | return sema.failWithOwnedErrorMsg(block, msg); |
| 10624 | 10625 | } |
| 10625 | 10626 | assert(inline_case_capture != .none); |
| 10626 | 10627 | return inline_case_capture; |
| ... | ... | @@ -10798,7 +10799,7 @@ const SwitchProngAnalysis = struct { |
| 10798 | 10799 | try sema.errNote(block, capture_src, msg, "this coercion is only possible when capturing by value", .{}); |
| 10799 | 10800 | break :msg msg; |
| 10800 | 10801 | }; |
| 10801 | | return sema.failWithOwnedErrorMsg(msg); |
| 10802 | return sema.failWithOwnedErrorMsg(block, msg); |
| 10802 | 10803 | } |
| 10803 | 10804 | } |
| 10804 | 10805 | } |
| ... | ... | @@ -11029,7 +11030,7 @@ fn switchCond( |
| 11029 | 11030 | } |
| 11030 | 11031 | break :msg msg; |
| 11031 | 11032 | }; |
| 11032 | | return sema.failWithOwnedErrorMsg(msg); |
| 11033 | return sema.failWithOwnedErrorMsg(block, msg); |
| 11033 | 11034 | }; |
| 11034 | 11035 | return sema.unionToTag(block, enum_ty, operand, src); |
| 11035 | 11036 | }, |
| ... | ... | @@ -11182,7 +11183,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index, operand_is_r |
| 11182 | 11183 | ); |
| 11183 | 11184 | break :msg msg; |
| 11184 | 11185 | }; |
| 11185 | | return sema.failWithOwnedErrorMsg(msg); |
| 11186 | return sema.failWithOwnedErrorMsg(block, msg); |
| 11186 | 11187 | } |
| 11187 | 11188 | |
| 11188 | 11189 | // 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 |
| 11282 | 11283 | ); |
| 11283 | 11284 | break :msg msg; |
| 11284 | 11285 | }; |
| 11285 | | return sema.failWithOwnedErrorMsg(msg); |
| 11286 | return sema.failWithOwnedErrorMsg(block, msg); |
| 11286 | 11287 | } else if (special_prong == .none and operand_ty.isNonexhaustiveEnum(mod) and !union_originally) { |
| 11287 | 11288 | return sema.fail( |
| 11288 | 11289 | block, |
| ... | ... | @@ -11382,7 +11383,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index, operand_is_r |
| 11382 | 11383 | if (maybe_msg) |msg| { |
| 11383 | 11384 | maybe_msg = null; |
| 11384 | 11385 | try sema.addDeclaredHereNote(msg, operand_ty); |
| 11385 | | return sema.failWithOwnedErrorMsg(msg); |
| 11386 | return sema.failWithOwnedErrorMsg(block, msg); |
| 11386 | 11387 | } |
| 11387 | 11388 | |
| 11388 | 11389 | if (special_prong == .@"else" and |
| ... | ... | @@ -12722,7 +12723,7 @@ fn validateSwitchDupe( |
| 12722 | 12723 | ); |
| 12723 | 12724 | break :msg msg; |
| 12724 | 12725 | }; |
| 12725 | | return sema.failWithOwnedErrorMsg(msg); |
| 12726 | return sema.failWithOwnedErrorMsg(block, msg); |
| 12726 | 12727 | } |
| 12727 | 12728 | |
| 12728 | 12729 | fn validateSwitchItemBool( |
| ... | ... | @@ -12796,7 +12797,7 @@ fn validateSwitchNoRange( |
| 12796 | 12797 | ); |
| 12797 | 12798 | break :msg msg; |
| 12798 | 12799 | }; |
| 12799 | | return sema.failWithOwnedErrorMsg(msg); |
| 12800 | return sema.failWithOwnedErrorMsg(block, msg); |
| 12800 | 12801 | } |
| 12801 | 12802 | |
| 12802 | 12803 | fn 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 |
| 13960 | 13961 | } |
| 13961 | 13962 | break :msg msg; |
| 13962 | 13963 | }; |
| 13963 | | return sema.failWithOwnedErrorMsg(msg); |
| 13964 | return sema.failWithOwnedErrorMsg(block, msg); |
| 13964 | 13965 | }; |
| 13965 | 13966 | |
| 13966 | 13967 | // In `**` rhs must be comptime-known, but lhs can be runtime-known |
| ... | ... | @@ -16293,7 +16294,7 @@ fn analyzeCmpUnionTag( |
| 16293 | 16294 | try mod.errNoteNonLazy(union_ty.declSrcLoc(mod), msg, "union '{}' is not a tagged union", .{union_ty.fmt(mod)}); |
| 16294 | 16295 | break :msg msg; |
| 16295 | 16296 | }; |
| 16296 | | return sema.failWithOwnedErrorMsg(msg); |
| 16297 | return sema.failWithOwnedErrorMsg(block, msg); |
| 16297 | 16298 | }; |
| 16298 | 16299 | // Coerce both the union and the tag to the union's tag type, and then execute the |
| 16299 | 16300 | // enum comparison codepath. |
| ... | ... | @@ -16628,7 +16629,7 @@ fn zirClosureGet(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! |
| 16628 | 16629 | // TODO add "declared here" note |
| 16629 | 16630 | break :msg msg; |
| 16630 | 16631 | }; |
| 16631 | | return sema.failWithOwnedErrorMsg(msg); |
| 16632 | return sema.failWithOwnedErrorMsg(block, msg); |
| 16632 | 16633 | } |
| 16633 | 16634 | |
| 16634 | 16635 | 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! |
| 16658 | 16659 | // TODO add "declared here" note |
| 16659 | 16660 | break :msg msg; |
| 16660 | 16661 | }; |
| 16661 | | return sema.failWithOwnedErrorMsg(msg); |
| 16662 | return sema.failWithOwnedErrorMsg(block, msg); |
| 16662 | 16663 | } |
| 16663 | 16664 | |
| 16664 | 16665 | switch (capture) { |
| ... | ... | @@ -18582,7 +18583,7 @@ fn zirRetImplicit( |
| 18582 | 18583 | try sema.errNote(block, r_brace_src, msg, "control flow reaches end of body here", .{}); |
| 18583 | 18584 | break :msg msg; |
| 18584 | 18585 | }; |
| 18585 | | return sema.failWithOwnedErrorMsg(msg); |
| 18586 | return sema.failWithOwnedErrorMsg(block, msg); |
| 18586 | 18587 | } else if (base_tag != .Void) { |
| 18587 | 18588 | const msg = msg: { |
| 18588 | 18589 | const msg = try sema.errMsg(block, ret_ty_src, "function with non-void return type '{}' implicitly returns", .{ |
| ... | ... | @@ -18592,7 +18593,7 @@ fn zirRetImplicit( |
| 18592 | 18593 | try sema.errNote(block, r_brace_src, msg, "control flow reaches end of body here", .{}); |
| 18593 | 18594 | break :msg msg; |
| 18594 | 18595 | }; |
| 18595 | | return sema.failWithOwnedErrorMsg(msg); |
| 18596 | return sema.failWithOwnedErrorMsg(block, msg); |
| 18596 | 18597 | } |
| 18597 | 18598 | |
| 18598 | 18599 | return sema.analyzeRet(block, operand, r_brace_src); |
| ... | ... | @@ -18834,7 +18835,7 @@ fn analyzeRet( |
| 18834 | 18835 | try sema.errNote(block, src, msg, "can only return using assembly", .{}); |
| 18835 | 18836 | break :msg msg; |
| 18836 | 18837 | }; |
| 18837 | | return sema.failWithOwnedErrorMsg(msg); |
| 18838 | return sema.failWithOwnedErrorMsg(block, msg); |
| 18838 | 18839 | } |
| 18839 | 18840 | |
| 18840 | 18841 | try sema.resolveTypeLayout(sema.fn_ret_ty); |
| ... | ... | @@ -18975,7 +18976,7 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 18975 | 18976 | try sema.addDeclaredHereNote(msg, elem_ty); |
| 18976 | 18977 | break :msg msg; |
| 18977 | 18978 | }; |
| 18978 | | return sema.failWithOwnedErrorMsg(msg); |
| 18979 | return sema.failWithOwnedErrorMsg(block, msg); |
| 18979 | 18980 | } |
| 18980 | 18981 | if (elem_ty.zigTypeTag(mod) == .Opaque) { |
| 18981 | 18982 | 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 |
| 19069 | 19070 | try sema.addDeclaredHereNote(msg, union_ty); |
| 19070 | 19071 | break :msg msg; |
| 19071 | 19072 | }; |
| 19072 | | return sema.failWithOwnedErrorMsg(msg); |
| 19073 | return sema.failWithOwnedErrorMsg(block, msg); |
| 19073 | 19074 | } |
| 19074 | 19075 | const field_name = try sema.resolveConstStringIntern(block, field_src, extra.field_name, .{ |
| 19075 | 19076 | .needed_comptime_reason = "name of field being initialized must be comptime-known", |
| ... | ... | @@ -19175,7 +19176,7 @@ fn zirStructInit( |
| 19175 | 19176 | try sema.errNote(block, other_field_src, msg, "other field here", .{}); |
| 19176 | 19177 | break :msg msg; |
| 19177 | 19178 | }; |
| 19178 | | return sema.failWithOwnedErrorMsg(msg); |
| 19179 | return sema.failWithOwnedErrorMsg(block, msg); |
| 19179 | 19180 | } |
| 19180 | 19181 | found_fields[field_index] = item.data.field_type; |
| 19181 | 19182 | field_inits[field_index] = try sema.resolveInst(item.data.init); |
| ... | ... | @@ -19317,7 +19318,7 @@ fn finishStructInit( |
| 19317 | 19318 | ); |
| 19318 | 19319 | } |
| 19319 | 19320 | root_msg = null; |
| 19320 | | return sema.failWithOwnedErrorMsg(msg); |
| 19321 | return sema.failWithOwnedErrorMsg(block, msg); |
| 19321 | 19322 | } |
| 19322 | 19323 | |
| 19323 | 19324 | // Find which field forces the expression to be runtime, if any. |
| ... | ... | @@ -19441,7 +19442,7 @@ fn structInitAnon( |
| 19441 | 19442 | try sema.errNote(block, prev_source, msg, "other field here", .{}); |
| 19442 | 19443 | break :msg msg; |
| 19443 | 19444 | }; |
| 19444 | | return sema.failWithOwnedErrorMsg(msg); |
| 19445 | return sema.failWithOwnedErrorMsg(block, msg); |
| 19445 | 19446 | } |
| 19446 | 19447 | gop.value_ptr.* = i; |
| 19447 | 19448 | |
| ... | ... | @@ -19457,7 +19458,7 @@ fn structInitAnon( |
| 19457 | 19458 | try sema.addDeclaredHereNote(msg, field_ty.toType()); |
| 19458 | 19459 | break :msg msg; |
| 19459 | 19460 | }; |
| 19460 | | return sema.failWithOwnedErrorMsg(msg); |
| 19461 | return sema.failWithOwnedErrorMsg(block, msg); |
| 19461 | 19462 | } |
| 19462 | 19463 | if (try sema.resolveMaybeUndefVal(init)) |init_val| { |
| 19463 | 19464 | values[i] = try init_val.intern(field_ty.toType(), mod); |
| ... | ... | @@ -19710,7 +19711,7 @@ fn arrayInitAnon( |
| 19710 | 19711 | try sema.addDeclaredHereNote(msg, types[i].toType()); |
| 19711 | 19712 | break :msg msg; |
| 19712 | 19713 | }; |
| 19713 | | return sema.failWithOwnedErrorMsg(msg); |
| 19714 | return sema.failWithOwnedErrorMsg(block, msg); |
| 19714 | 19715 | } |
| 19715 | 19716 | if (try sema.resolveMaybeUndefVal(elem)) |val| { |
| 19716 | 19717 | values[i] = val.toIntern(); |
| ... | ... | @@ -20080,7 +20081,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 20080 | 20081 | try sema.addDeclaredHereNote(msg, operand_ty); |
| 20081 | 20082 | break :msg msg; |
| 20082 | 20083 | }; |
| 20083 | | return sema.failWithOwnedErrorMsg(msg); |
| 20084 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20084 | 20085 | }, |
| 20085 | 20086 | else => return sema.fail(block, operand_src, "expected enum or union; found '{}'", .{ |
| 20086 | 20087 | operand_ty.fmt(mod), |
| ... | ... | @@ -20106,7 +20107,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 20106 | 20107 | try mod.errNoteNonLazy(enum_decl.srcLoc(mod), msg, "declared here", .{}); |
| 20107 | 20108 | break :msg msg; |
| 20108 | 20109 | }; |
| 20109 | | return sema.failWithOwnedErrorMsg(msg); |
| 20110 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20110 | 20111 | }; |
| 20111 | 20112 | // TODO: write something like getCoercedInts to avoid needing to dupe |
| 20112 | 20113 | const field_name = enum_ty.enumFieldName(field_index, mod); |
| ... | ... | @@ -20291,7 +20292,7 @@ fn zirReify( |
| 20291 | 20292 | try sema.addDeclaredHereNote(msg, elem_ty); |
| 20292 | 20293 | break :msg msg; |
| 20293 | 20294 | }; |
| 20294 | | return sema.failWithOwnedErrorMsg(msg); |
| 20295 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20295 | 20296 | } |
| 20296 | 20297 | if (elem_ty.zigTypeTag(mod) == .Opaque) { |
| 20297 | 20298 | return sema.fail(block, src, "C pointers cannot point to opaque types", .{}); |
| ... | ... | @@ -20516,7 +20517,7 @@ fn zirReify( |
| 20516 | 20517 | try sema.errNote(block, src, msg, "other field here", .{}); |
| 20517 | 20518 | break :msg msg; |
| 20518 | 20519 | }; |
| 20519 | | return sema.failWithOwnedErrorMsg(msg); |
| 20520 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20520 | 20521 | } |
| 20521 | 20522 | |
| 20522 | 20523 | if (try incomplete_enum.addFieldValue(ip, gpa, (try mod.getCoerced(value_val, int_tag_ty)).toIntern())) |other| { |
| ... | ... | @@ -20527,7 +20528,7 @@ fn zirReify( |
| 20527 | 20528 | try sema.errNote(block, src, msg, "other enum tag value here", .{}); |
| 20528 | 20529 | break :msg msg; |
| 20529 | 20530 | }; |
| 20530 | | return sema.failWithOwnedErrorMsg(msg); |
| 20531 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20531 | 20532 | } |
| 20532 | 20533 | } |
| 20533 | 20534 | |
| ... | ... | @@ -20664,7 +20665,7 @@ fn zirReify( |
| 20664 | 20665 | try sema.addDeclaredHereNote(msg, enum_tag_ty.toType()); |
| 20665 | 20666 | break :msg msg; |
| 20666 | 20667 | }; |
| 20667 | | return sema.failWithOwnedErrorMsg(msg); |
| 20668 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20668 | 20669 | }; |
| 20669 | 20670 | // No check for duplicate because the check already happened in order |
| 20670 | 20671 | // to create the enum type in the first place. |
| ... | ... | @@ -20695,7 +20696,7 @@ fn zirReify( |
| 20695 | 20696 | try sema.addDeclaredHereNote(msg, field_ty); |
| 20696 | 20697 | break :msg msg; |
| 20697 | 20698 | }; |
| 20698 | | return sema.failWithOwnedErrorMsg(msg); |
| 20699 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20699 | 20700 | } |
| 20700 | 20701 | if (layout == .Extern and !try sema.validateExternType(field_ty, .union_field)) { |
| 20701 | 20702 | const msg = msg: { |
| ... | ... | @@ -20708,7 +20709,7 @@ fn zirReify( |
| 20708 | 20709 | try sema.addDeclaredHereNote(msg, field_ty); |
| 20709 | 20710 | break :msg msg; |
| 20710 | 20711 | }; |
| 20711 | | return sema.failWithOwnedErrorMsg(msg); |
| 20712 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20712 | 20713 | } else if (layout == .Packed and !(validatePackedType(field_ty, mod))) { |
| 20713 | 20714 | const msg = msg: { |
| 20714 | 20715 | const msg = try sema.errMsg(block, src, "packed unions cannot contain fields of type '{}'", .{field_ty.fmt(mod)}); |
| ... | ... | @@ -20720,7 +20721,7 @@ fn zirReify( |
| 20720 | 20721 | try sema.addDeclaredHereNote(msg, field_ty); |
| 20721 | 20722 | break :msg msg; |
| 20722 | 20723 | }; |
| 20723 | | return sema.failWithOwnedErrorMsg(msg); |
| 20724 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20724 | 20725 | } |
| 20725 | 20726 | } |
| 20726 | 20727 | |
| ... | ... | @@ -20740,7 +20741,7 @@ fn zirReify( |
| 20740 | 20741 | try sema.addDeclaredHereNote(msg, enum_tag_ty.toType()); |
| 20741 | 20742 | break :msg msg; |
| 20742 | 20743 | }; |
| 20743 | | return sema.failWithOwnedErrorMsg(msg); |
| 20744 | return sema.failWithOwnedErrorMsg(block, msg); |
| 20744 | 20745 | } |
| 20745 | 20746 | } else { |
| 20746 | 20747 | enum_tag_ty = try sema.generateUnionTagTypeSimple(block, enum_field_names, .none); |
| ... | ... | @@ -21058,7 +21059,7 @@ fn reifyStruct( |
| 21058 | 21059 | try sema.addDeclaredHereNote(msg, field_ty); |
| 21059 | 21060 | break :msg msg; |
| 21060 | 21061 | }; |
| 21061 | | return sema.failWithOwnedErrorMsg(msg); |
| 21062 | return sema.failWithOwnedErrorMsg(block, msg); |
| 21062 | 21063 | } |
| 21063 | 21064 | if (field_ty.zigTypeTag(mod) == .NoReturn) { |
| 21064 | 21065 | const msg = msg: { |
| ... | ... | @@ -21068,7 +21069,7 @@ fn reifyStruct( |
| 21068 | 21069 | try sema.addDeclaredHereNote(msg, field_ty); |
| 21069 | 21070 | break :msg msg; |
| 21070 | 21071 | }; |
| 21071 | | return sema.failWithOwnedErrorMsg(msg); |
| 21072 | return sema.failWithOwnedErrorMsg(block, msg); |
| 21072 | 21073 | } |
| 21073 | 21074 | if (struct_obj.layout == .Extern and !try sema.validateExternType(field_ty, .struct_field)) { |
| 21074 | 21075 | const msg = msg: { |
| ... | ... | @@ -21081,7 +21082,7 @@ fn reifyStruct( |
| 21081 | 21082 | try sema.addDeclaredHereNote(msg, field_ty); |
| 21082 | 21083 | break :msg msg; |
| 21083 | 21084 | }; |
| 21084 | | return sema.failWithOwnedErrorMsg(msg); |
| 21085 | return sema.failWithOwnedErrorMsg(block, msg); |
| 21085 | 21086 | } else if (struct_obj.layout == .Packed and !(validatePackedType(field_ty, mod))) { |
| 21086 | 21087 | const msg = msg: { |
| 21087 | 21088 | 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( |
| 21093 | 21094 | try sema.addDeclaredHereNote(msg, field_ty); |
| 21094 | 21095 | break :msg msg; |
| 21095 | 21096 | }; |
| 21096 | | return sema.failWithOwnedErrorMsg(msg); |
| 21097 | return sema.failWithOwnedErrorMsg(block, msg); |
| 21097 | 21098 | } |
| 21098 | 21099 | } |
| 21099 | 21100 | |
| ... | ... | @@ -21161,7 +21162,7 @@ fn zirCVaArg(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) C |
| 21161 | 21162 | try sema.addDeclaredHereNote(msg, arg_ty); |
| 21162 | 21163 | break :msg msg; |
| 21163 | 21164 | }; |
| 21164 | | return sema.failWithOwnedErrorMsg(msg); |
| 21165 | return sema.failWithOwnedErrorMsg(block, msg); |
| 21165 | 21166 | } |
| 21166 | 21167 | |
| 21167 | 21168 | try sema.requireRuntimeBlock(block, src, null); |
| ... | ... | @@ -21402,7 +21403,7 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! |
| 21402 | 21403 | try sema.errNote(block, src, msg, "slice length cannot be inferred from address", .{}); |
| 21403 | 21404 | break :msg msg; |
| 21404 | 21405 | }; |
| 21405 | | return sema.failWithOwnedErrorMsg(msg); |
| 21406 | return sema.failWithOwnedErrorMsg(block, msg); |
| 21406 | 21407 | } |
| 21407 | 21408 | |
| 21408 | 21409 | 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 |
| 21538 | 21539 | try sema.addDeclaredHereNote(msg, dest_ty); |
| 21539 | 21540 | break :msg msg; |
| 21540 | 21541 | }; |
| 21541 | | return sema.failWithOwnedErrorMsg(msg); |
| 21542 | return sema.failWithOwnedErrorMsg(block, msg); |
| 21542 | 21543 | } |
| 21543 | 21544 | |
| 21544 | 21545 | if (maybe_operand_val) |val| { |
| ... | ... | @@ -21556,7 +21557,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat |
| 21556 | 21557 | try sema.addDeclaredHereNote(msg, dest_ty); |
| 21557 | 21558 | break :msg msg; |
| 21558 | 21559 | }; |
| 21559 | | return sema.failWithOwnedErrorMsg(msg); |
| 21560 | return sema.failWithOwnedErrorMsg(block, msg); |
| 21560 | 21561 | } |
| 21561 | 21562 | } |
| 21562 | 21563 | |
| ... | ... | @@ -21662,7 +21663,7 @@ fn ptrCastFull( |
| 21662 | 21663 | if (src_slice_like and dest_slice_like) break :check_size; |
| 21663 | 21664 | if (src_info.flags.size == .C) break :check_size; |
| 21664 | 21665 | if (dest_info.flags.size == .C) break :check_size; |
| 21665 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21666 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21666 | 21667 | const msg = try sema.errMsg(block, src, "cannot implicitly convert {s} pointer to {s} pointer", .{ |
| 21667 | 21668 | pointerSizeString(src_info.flags.size), |
| 21668 | 21669 | pointerSizeString(dest_info.flags.size), |
| ... | ... | @@ -21698,7 +21699,7 @@ fn ptrCastFull( |
| 21698 | 21699 | operand_src, |
| 21699 | 21700 | ); |
| 21700 | 21701 | if (imc_res == .ok) break :check_child; |
| 21701 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21702 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21702 | 21703 | const msg = try sema.errMsg(block, src, "pointer element type '{}' cannot coerce into element type '{}'", .{ |
| 21703 | 21704 | src_child.fmt(mod), |
| 21704 | 21705 | dest_child.fmt(mod), |
| ... | ... | @@ -21725,7 +21726,7 @@ fn ptrCastFull( |
| 21725 | 21726 | if (dest_info.sentinel == coerced_sent) break :check_sent; |
| 21726 | 21727 | } |
| 21727 | 21728 | } |
| 21728 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21729 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21729 | 21730 | const msg = if (src_info.sentinel == .none) blk: { |
| 21730 | 21731 | break :blk try sema.errMsg(block, src, "destination pointer requires '{}' sentinel", .{ |
| 21731 | 21732 | dest_info.sentinel.toValue().fmtValue(dest_info.child.toType(), mod), |
| ... | ... | @@ -21743,7 +21744,7 @@ fn ptrCastFull( |
| 21743 | 21744 | } |
| 21744 | 21745 | |
| 21745 | 21746 | if (src_info.packed_offset.host_size != dest_info.packed_offset.host_size) { |
| 21746 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21747 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21747 | 21748 | const msg = try sema.errMsg(block, src, "pointer host size '{}' cannot coerce into pointer host size '{}'", .{ |
| 21748 | 21749 | src_info.packed_offset.host_size, |
| 21749 | 21750 | dest_info.packed_offset.host_size, |
| ... | ... | @@ -21755,7 +21756,7 @@ fn ptrCastFull( |
| 21755 | 21756 | } |
| 21756 | 21757 | |
| 21757 | 21758 | if (src_info.packed_offset.bit_offset != dest_info.packed_offset.bit_offset) { |
| 21758 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21759 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21759 | 21760 | const msg = try sema.errMsg(block, src, "pointer bit offset '{}' cannot coerce into pointer bit offset '{}'", .{ |
| 21760 | 21761 | src_info.packed_offset.bit_offset, |
| 21761 | 21762 | dest_info.packed_offset.bit_offset, |
| ... | ... | @@ -21772,7 +21773,7 @@ fn ptrCastFull( |
| 21772 | 21773 | if (!src_allows_zero) break :check_allowzero; |
| 21773 | 21774 | if (dest_allows_zero) break :check_allowzero; |
| 21774 | 21775 | |
| 21775 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21776 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21776 | 21777 | const msg = try sema.errMsg(block, src, "'{}' could have null values which are illegal in type '{}'", .{ |
| 21777 | 21778 | operand_ty.fmt(mod), |
| 21778 | 21779 | dest_ty.fmt(mod), |
| ... | ... | @@ -21790,7 +21791,7 @@ fn ptrCastFull( |
| 21790 | 21791 | const dest_align = dest_info.flags.alignment.toByteUnitsOptional() orelse dest_info.child.toType().abiAlignment(mod); |
| 21791 | 21792 | if (!flags.align_cast) { |
| 21792 | 21793 | if (dest_align > src_align) { |
| 21793 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21794 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21794 | 21795 | const msg = try sema.errMsg(block, src, "cast increases pointer alignment", .{}); |
| 21795 | 21796 | errdefer msg.destroy(sema.gpa); |
| 21796 | 21797 | try sema.errNote(block, operand_src, msg, "'{}' has alignment '{d}'", .{ |
| ... | ... | @@ -21807,7 +21808,7 @@ fn ptrCastFull( |
| 21807 | 21808 | |
| 21808 | 21809 | if (!flags.addrspace_cast) { |
| 21809 | 21810 | if (src_info.flags.address_space != dest_info.flags.address_space) { |
| 21810 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21811 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21811 | 21812 | const msg = try sema.errMsg(block, src, "cast changes pointer address space", .{}); |
| 21812 | 21813 | errdefer msg.destroy(sema.gpa); |
| 21813 | 21814 | try sema.errNote(block, operand_src, msg, "'{}' has address space '{s}'", .{ |
| ... | ... | @@ -21823,7 +21824,7 @@ fn ptrCastFull( |
| 21823 | 21824 | } else { |
| 21824 | 21825 | // Some address space casts are always disallowed |
| 21825 | 21826 | 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: { |
| 21827 | 21828 | const msg = try sema.errMsg(block, src, "invalid address space cast", .{}); |
| 21828 | 21829 | errdefer msg.destroy(sema.gpa); |
| 21829 | 21830 | try sema.errNote(block, operand_src, msg, "address space '{s}' is not compatible with address space '{s}'", .{ |
| ... | ... | @@ -21837,7 +21838,7 @@ fn ptrCastFull( |
| 21837 | 21838 | |
| 21838 | 21839 | if (!flags.const_cast) { |
| 21839 | 21840 | if (src_info.flags.is_const and !dest_info.flags.is_const) { |
| 21840 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21841 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21841 | 21842 | const msg = try sema.errMsg(block, src, "cast discards const qualifier", .{}); |
| 21842 | 21843 | errdefer msg.destroy(sema.gpa); |
| 21843 | 21844 | try sema.errNote(block, src, msg, "use @constCast to discard const qualifier", .{}); |
| ... | ... | @@ -21848,7 +21849,7 @@ fn ptrCastFull( |
| 21848 | 21849 | |
| 21849 | 21850 | if (!flags.volatile_cast) { |
| 21850 | 21851 | if (src_info.flags.is_volatile and !dest_info.flags.is_volatile) { |
| 21851 | | return sema.failWithOwnedErrorMsg(msg: { |
| 21852 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 21852 | 21853 | const msg = try sema.errMsg(block, src, "cast discards volatile qualifier", .{}); |
| 21853 | 21854 | errdefer msg.destroy(sema.gpa); |
| 21854 | 21855 | 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 |
| 22059 | 22060 | }); |
| 22060 | 22061 | break :msg msg; |
| 22061 | 22062 | }; |
| 22062 | | return sema.failWithOwnedErrorMsg(msg); |
| 22063 | return sema.failWithOwnedErrorMsg(block, msg); |
| 22063 | 22064 | } |
| 22064 | 22065 | } |
| 22065 | 22066 | |
| ... | ... | @@ -22286,7 +22287,7 @@ fn bitOffsetOf(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!u6 |
| 22286 | 22287 | try sema.addDeclaredHereNote(msg, ty); |
| 22287 | 22288 | break :msg msg; |
| 22288 | 22289 | }; |
| 22289 | | return sema.failWithOwnedErrorMsg(msg); |
| 22290 | return sema.failWithOwnedErrorMsg(block, msg); |
| 22290 | 22291 | }, |
| 22291 | 22292 | } |
| 22292 | 22293 | |
| ... | ... | @@ -22397,7 +22398,7 @@ fn checkPtrOperand( |
| 22397 | 22398 | |
| 22398 | 22399 | break :msg msg; |
| 22399 | 22400 | }; |
| 22400 | | return sema.failWithOwnedErrorMsg(msg); |
| 22401 | return sema.failWithOwnedErrorMsg(block, msg); |
| 22401 | 22402 | }, |
| 22402 | 22403 | .Optional => if (ty.childType(mod).zigTypeTag(mod) == .Pointer) return, |
| 22403 | 22404 | else => {}, |
| ... | ... | @@ -22428,7 +22429,7 @@ fn checkPtrType( |
| 22428 | 22429 | |
| 22429 | 22430 | break :msg msg; |
| 22430 | 22431 | }; |
| 22431 | | return sema.failWithOwnedErrorMsg(msg); |
| 22432 | return sema.failWithOwnedErrorMsg(block, msg); |
| 22432 | 22433 | }, |
| 22433 | 22434 | .Optional => if (ty.childType(mod).zigTypeTag(mod) == .Pointer) return, |
| 22434 | 22435 | else => {}, |
| ... | ... | @@ -22569,7 +22570,7 @@ fn checkComptimeVarStore( |
| 22569 | 22570 | try sema.errNote(block, cond_src, msg, "runtime condition here", .{}); |
| 22570 | 22571 | break :msg msg; |
| 22571 | 22572 | }; |
| 22572 | | return sema.failWithOwnedErrorMsg(msg); |
| 22573 | return sema.failWithOwnedErrorMsg(block, msg); |
| 22573 | 22574 | } |
| 22574 | 22575 | if (block.runtime_loop) |loop_src| { |
| 22575 | 22576 | const msg = msg: { |
| ... | ... | @@ -22578,7 +22579,7 @@ fn checkComptimeVarStore( |
| 22578 | 22579 | try sema.errNote(block, loop_src, msg, "non-inline loop here", .{}); |
| 22579 | 22580 | break :msg msg; |
| 22580 | 22581 | }; |
| 22581 | | return sema.failWithOwnedErrorMsg(msg); |
| 22582 | return sema.failWithOwnedErrorMsg(block, msg); |
| 22582 | 22583 | } |
| 22583 | 22584 | unreachable; |
| 22584 | 22585 | } |
| ... | ... | @@ -22720,7 +22721,7 @@ fn checkVectorizableBinaryOperands( |
| 22720 | 22721 | try sema.errNote(block, rhs_src, msg, "length {d} here", .{rhs_len}); |
| 22721 | 22722 | break :msg msg; |
| 22722 | 22723 | }; |
| 22723 | | return sema.failWithOwnedErrorMsg(msg); |
| 22724 | return sema.failWithOwnedErrorMsg(block, msg); |
| 22724 | 22725 | } |
| 22725 | 22726 | } else { |
| 22726 | 22727 | const msg = msg: { |
| ... | ... | @@ -22737,7 +22738,7 @@ fn checkVectorizableBinaryOperands( |
| 22737 | 22738 | } |
| 22738 | 22739 | break :msg msg; |
| 22739 | 22740 | }; |
| 22740 | | return sema.failWithOwnedErrorMsg(msg); |
| 22741 | return sema.failWithOwnedErrorMsg(block, msg); |
| 22741 | 22742 | } |
| 22742 | 22743 | } |
| 22743 | 22744 | |
| ... | ... | @@ -23165,7 +23166,7 @@ fn analyzeShuffle( |
| 23165 | 23166 | |
| 23166 | 23167 | break :msg msg; |
| 23167 | 23168 | }; |
| 23168 | | return sema.failWithOwnedErrorMsg(msg); |
| 23169 | return sema.failWithOwnedErrorMsg(block, msg); |
| 23169 | 23170 | } |
| 23170 | 23171 | } |
| 23171 | 23172 | |
| ... | ... | @@ -23750,7 +23751,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr |
| 23750 | 23751 | try sema.addDeclaredHereNote(msg, parent_ty); |
| 23751 | 23752 | break :msg msg; |
| 23752 | 23753 | }; |
| 23753 | | return sema.failWithOwnedErrorMsg(msg); |
| 23754 | return sema.failWithOwnedErrorMsg(block, msg); |
| 23754 | 23755 | } |
| 23755 | 23756 | return Air.internedToRef(field.base); |
| 23756 | 23757 | } |
| ... | ... | @@ -24104,7 +24105,7 @@ fn zirMemcpy(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void |
| 24104 | 24105 | }); |
| 24105 | 24106 | break :msg msg; |
| 24106 | 24107 | }; |
| 24107 | | return sema.failWithOwnedErrorMsg(msg); |
| 24108 | return sema.failWithOwnedErrorMsg(block, msg); |
| 24108 | 24109 | } |
| 24109 | 24110 | |
| 24110 | 24111 | var len_val: ?Value = null; |
| ... | ... | @@ -24126,7 +24127,7 @@ fn zirMemcpy(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void |
| 24126 | 24127 | }); |
| 24127 | 24128 | break :msg msg; |
| 24128 | 24129 | }; |
| 24129 | | return sema.failWithOwnedErrorMsg(msg); |
| 24130 | return sema.failWithOwnedErrorMsg(block, msg); |
| 24130 | 24131 | } |
| 24131 | 24132 | break :check; |
| 24132 | 24133 | } |
| ... | ... | @@ -24319,7 +24320,7 @@ fn zirMemset(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void |
| 24319 | 24320 | }, |
| 24320 | 24321 | .Many, .C => {}, |
| 24321 | 24322 | } |
| 24322 | | return sema.failWithOwnedErrorMsg(msg: { |
| 24323 | return sema.failWithOwnedErrorMsg(block, msg: { |
| 24323 | 24324 | const msg = try sema.errMsg(block, src, "unknown @memset length", .{}); |
| 24324 | 24325 | errdefer msg.destroy(sema.gpa); |
| 24325 | 24326 | try sema.errNote(block, dest_src, msg, "destination type '{}' provides no length", .{ |
| ... | ... | @@ -24969,7 +24970,7 @@ fn zirBuiltinExtern( |
| 24969 | 24970 | try sema.explainWhyTypeIsNotExtern(msg, ty_src.toSrcLoc(src_decl, mod), ty, .other); |
| 24970 | 24971 | break :msg msg; |
| 24971 | 24972 | }; |
| 24972 | | return sema.failWithOwnedErrorMsg(msg); |
| 24973 | return sema.failWithOwnedErrorMsg(block, msg); |
| 24973 | 24974 | } |
| 24974 | 24975 | |
| 24975 | 24976 | 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: |
| 25087 | 25088 | } |
| 25088 | 25089 | break :msg msg; |
| 25089 | 25090 | }; |
| 25090 | | return sema.failWithOwnedErrorMsg(msg); |
| 25091 | return sema.failWithOwnedErrorMsg(block, msg); |
| 25091 | 25092 | } |
| 25092 | 25093 | } |
| 25093 | 25094 | |
| ... | ... | @@ -25109,7 +25110,7 @@ fn validateVarType( |
| 25109 | 25110 | try sema.explainWhyTypeIsNotExtern(msg, src.toSrcLoc(src_decl, mod), var_ty, .other); |
| 25110 | 25111 | break :msg msg; |
| 25111 | 25112 | }; |
| 25112 | | return sema.failWithOwnedErrorMsg(msg); |
| 25113 | return sema.failWithOwnedErrorMsg(block, msg); |
| 25113 | 25114 | } |
| 25114 | 25115 | } else { |
| 25115 | 25116 | if (var_ty.zigTypeTag(mod) == .Opaque) { |
| ... | ... | @@ -25136,7 +25137,7 @@ fn validateVarType( |
| 25136 | 25137 | |
| 25137 | 25138 | break :msg msg; |
| 25138 | 25139 | }; |
| 25139 | | return sema.failWithOwnedErrorMsg(msg); |
| 25140 | return sema.failWithOwnedErrorMsg(block, msg); |
| 25140 | 25141 | } |
| 25141 | 25142 | |
| 25142 | 25143 | const TypeSet = std.AutoHashMapUnmanaged(InternPool.Index, void); |
| ... | ... | @@ -25822,7 +25823,7 @@ fn emitBackwardBranch(sema: *Sema, block: *Block, src: LazySrcLoc) !void { |
| 25822 | 25823 | "use @setEvalBranchQuota() to raise the branch limit from {d}", |
| 25823 | 25824 | .{sema.branch_quota}, |
| 25824 | 25825 | ); |
| 25825 | | return sema.failWithOwnedErrorMsg(msg); |
| 25826 | return sema.failWithOwnedErrorMsg(block, msg); |
| 25826 | 25827 | } |
| 25827 | 25828 | } |
| 25828 | 25829 | |
| ... | ... | @@ -25929,7 +25930,7 @@ fn fieldVal( |
| 25929 | 25930 | try sema.addDeclaredHereNote(msg, child_type); |
| 25930 | 25931 | break :msg msg; |
| 25931 | 25932 | }; |
| 25932 | | return sema.failWithOwnedErrorMsg(msg); |
| 25933 | return sema.failWithOwnedErrorMsg(block, msg); |
| 25933 | 25934 | }, |
| 25934 | 25935 | .inferred_error_set_type => { |
| 25935 | 25936 | return sema.fail(block, src, "TODO handle inferred error sets here", .{}); |
| ... | ... | @@ -25993,7 +25994,7 @@ fn fieldVal( |
| 25993 | 25994 | if (child_type.zigTypeTag(mod) == .Array) try sema.errNote(block, src, msg, "array values have 'len' member", .{}); |
| 25994 | 25995 | break :msg msg; |
| 25995 | 25996 | }; |
| 25996 | | return sema.failWithOwnedErrorMsg(msg); |
| 25997 | return sema.failWithOwnedErrorMsg(block, msg); |
| 25997 | 25998 | }, |
| 25998 | 25999 | } |
| 25999 | 26000 | }, |
| ... | ... | @@ -26412,7 +26413,7 @@ fn fieldCallBind( |
| 26412 | 26413 | } |
| 26413 | 26414 | break :msg msg; |
| 26414 | 26415 | }; |
| 26415 | | return sema.failWithOwnedErrorMsg(msg); |
| 26416 | return sema.failWithOwnedErrorMsg(block, msg); |
| 26416 | 26417 | } |
| 26417 | 26418 | |
| 26418 | 26419 | fn finishFieldCallBind( |
| ... | ... | @@ -26476,7 +26477,7 @@ fn namespaceLookup( |
| 26476 | 26477 | try mod.errNoteNonLazy(decl.srcLoc(mod), msg, "declared here", .{}); |
| 26477 | 26478 | break :msg msg; |
| 26478 | 26479 | }; |
| 26479 | | return sema.failWithOwnedErrorMsg(msg); |
| 26480 | return sema.failWithOwnedErrorMsg(block, msg); |
| 26480 | 26481 | } |
| 26481 | 26482 | return decl_index; |
| 26482 | 26483 | } |
| ... | ... | @@ -26834,7 +26835,7 @@ fn unionFieldPtr( |
| 26834 | 26835 | try sema.addDeclaredHereNote(msg, union_ty); |
| 26835 | 26836 | break :msg msg; |
| 26836 | 26837 | }; |
| 26837 | | return sema.failWithOwnedErrorMsg(msg); |
| 26838 | return sema.failWithOwnedErrorMsg(block, msg); |
| 26838 | 26839 | } |
| 26839 | 26840 | |
| 26840 | 26841 | if (try sema.resolveDefinedValue(block, src, union_ptr)) |union_ptr_val| ct: { |
| ... | ... | @@ -26860,7 +26861,7 @@ fn unionFieldPtr( |
| 26860 | 26861 | try sema.addDeclaredHereNote(msg, union_ty); |
| 26861 | 26862 | break :msg msg; |
| 26862 | 26863 | }; |
| 26863 | | return sema.failWithOwnedErrorMsg(msg); |
| 26864 | return sema.failWithOwnedErrorMsg(block, msg); |
| 26864 | 26865 | } |
| 26865 | 26866 | }, |
| 26866 | 26867 | .Packed, .Extern => {}, |
| ... | ... | @@ -26932,7 +26933,7 @@ fn unionFieldVal( |
| 26932 | 26933 | try sema.addDeclaredHereNote(msg, union_ty); |
| 26933 | 26934 | break :msg msg; |
| 26934 | 26935 | }; |
| 26935 | | return sema.failWithOwnedErrorMsg(msg); |
| 26936 | return sema.failWithOwnedErrorMsg(block, msg); |
| 26936 | 26937 | } |
| 26937 | 26938 | }, |
| 26938 | 26939 | .Packed, .Extern => { |
| ... | ... | @@ -27155,7 +27156,7 @@ fn validateRuntimeElemAccess( |
| 27155 | 27156 | |
| 27156 | 27157 | break :msg msg; |
| 27157 | 27158 | }; |
| 27158 | | return sema.failWithOwnedErrorMsg(msg); |
| 27159 | return sema.failWithOwnedErrorMsg(block, msg); |
| 27159 | 27160 | } |
| 27160 | 27161 | } |
| 27161 | 27162 | |
| ... | ... | @@ -27886,7 +27887,7 @@ fn coerceExtra( |
| 27886 | 27887 | try sema.errNote(block, dest_ty_src, err_msg, "pointers to tuples can only coerce to constant pointers", .{}); |
| 27887 | 27888 | break :err_msg err_msg; |
| 27888 | 27889 | }; |
| 27889 | | return sema.failWithOwnedErrorMsg(err_msg); |
| 27890 | return sema.failWithOwnedErrorMsg(block, err_msg); |
| 27890 | 27891 | } |
| 27891 | 27892 | return sema.coerceTupleToSlicePtrs(block, dest_ty, dest_ty_src, inst, inst_src); |
| 27892 | 27893 | }, |
| ... | ... | @@ -28064,7 +28065,7 @@ fn coerceExtra( |
| 28064 | 28065 | try sema.addDeclaredHereNote(msg, dest_ty); |
| 28065 | 28066 | break :msg msg; |
| 28066 | 28067 | }; |
| 28067 | | return sema.failWithOwnedErrorMsg(msg); |
| 28068 | return sema.failWithOwnedErrorMsg(block, msg); |
| 28068 | 28069 | }; |
| 28069 | 28070 | return Air.internedToRef((try mod.enumValueFieldIndex(dest_ty, @intCast(field_index))).toIntern()); |
| 28070 | 28071 | }, |
| ... | ... | @@ -28195,7 +28196,7 @@ fn coerceExtra( |
| 28195 | 28196 | try mod.errNoteNonLazy(ret_ty_src.toSrcLoc(src_decl, mod), msg, "'noreturn' declared here", .{}); |
| 28196 | 28197 | break :msg msg; |
| 28197 | 28198 | }; |
| 28198 | | return sema.failWithOwnedErrorMsg(msg); |
| 28199 | return sema.failWithOwnedErrorMsg(block, msg); |
| 28199 | 28200 | } |
| 28200 | 28201 | |
| 28201 | 28202 | const msg = msg: { |
| ... | ... | @@ -28241,7 +28242,7 @@ fn coerceExtra( |
| 28241 | 28242 | |
| 28242 | 28243 | break :msg msg; |
| 28243 | 28244 | }; |
| 28244 | | return sema.failWithOwnedErrorMsg(msg); |
| 28245 | return sema.failWithOwnedErrorMsg(block, msg); |
| 28245 | 28246 | } |
| 28246 | 28247 | |
| 28247 | 28248 | fn coerceInMemory( |
| ... | ... | @@ -29217,7 +29218,7 @@ fn coerceVarArgParam( |
| 29217 | 29218 | try sema.addDeclaredHereNote(msg, coerced_ty); |
| 29218 | 29219 | break :msg msg; |
| 29219 | 29220 | }; |
| 29220 | | return sema.failWithOwnedErrorMsg(msg); |
| 29221 | return sema.failWithOwnedErrorMsg(block, msg); |
| 29221 | 29222 | } |
| 29222 | 29223 | return coerced; |
| 29223 | 29224 | } |
| ... | ... | @@ -30472,7 +30473,7 @@ fn coerceEnumToUnion( |
| 30472 | 30473 | try sema.addDeclaredHereNote(msg, union_ty); |
| 30473 | 30474 | break :msg msg; |
| 30474 | 30475 | }; |
| 30475 | | return sema.failWithOwnedErrorMsg(msg); |
| 30476 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30476 | 30477 | }; |
| 30477 | 30478 | |
| 30478 | 30479 | const enum_tag = try sema.coerce(block, tag_ty, inst, inst_src); |
| ... | ... | @@ -30486,7 +30487,7 @@ fn coerceEnumToUnion( |
| 30486 | 30487 | try sema.addDeclaredHereNote(msg, union_ty); |
| 30487 | 30488 | break :msg msg; |
| 30488 | 30489 | }; |
| 30489 | | return sema.failWithOwnedErrorMsg(msg); |
| 30490 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30490 | 30491 | }; |
| 30491 | 30492 | |
| 30492 | 30493 | const union_obj = mod.typeToUnion(union_ty).?; |
| ... | ... | @@ -30504,7 +30505,7 @@ fn coerceEnumToUnion( |
| 30504 | 30505 | try sema.addDeclaredHereNote(msg, union_ty); |
| 30505 | 30506 | break :msg msg; |
| 30506 | 30507 | }; |
| 30507 | | return sema.failWithOwnedErrorMsg(msg); |
| 30508 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30508 | 30509 | } |
| 30509 | 30510 | const opv = (try sema.typeHasOnePossibleValue(field_ty)) orelse { |
| 30510 | 30511 | const msg = msg: { |
| ... | ... | @@ -30521,7 +30522,7 @@ fn coerceEnumToUnion( |
| 30521 | 30522 | try sema.addDeclaredHereNote(msg, union_ty); |
| 30522 | 30523 | break :msg msg; |
| 30523 | 30524 | }; |
| 30524 | | return sema.failWithOwnedErrorMsg(msg); |
| 30525 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30525 | 30526 | }; |
| 30526 | 30527 | |
| 30527 | 30528 | return Air.internedToRef((try mod.unionValue(union_ty, val, opv)).toIntern()); |
| ... | ... | @@ -30538,7 +30539,7 @@ fn coerceEnumToUnion( |
| 30538 | 30539 | try sema.addDeclaredHereNote(msg, tag_ty); |
| 30539 | 30540 | break :msg msg; |
| 30540 | 30541 | }; |
| 30541 | | return sema.failWithOwnedErrorMsg(msg); |
| 30542 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30542 | 30543 | } |
| 30543 | 30544 | |
| 30544 | 30545 | const union_obj = mod.typeToUnion(union_ty).?; |
| ... | ... | @@ -30562,7 +30563,7 @@ fn coerceEnumToUnion( |
| 30562 | 30563 | if (msg) |some| { |
| 30563 | 30564 | msg = null; |
| 30564 | 30565 | try sema.addDeclaredHereNote(some, union_ty); |
| 30565 | | return sema.failWithOwnedErrorMsg(some); |
| 30566 | return sema.failWithOwnedErrorMsg(block, some); |
| 30566 | 30567 | } |
| 30567 | 30568 | } |
| 30568 | 30569 | |
| ... | ... | @@ -30592,7 +30593,7 @@ fn coerceEnumToUnion( |
| 30592 | 30593 | try sema.addDeclaredHereNote(msg, union_ty); |
| 30593 | 30594 | break :msg msg; |
| 30594 | 30595 | }; |
| 30595 | | return sema.failWithOwnedErrorMsg(msg); |
| 30596 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30596 | 30597 | } |
| 30597 | 30598 | |
| 30598 | 30599 | fn coerceAnonStructToUnion( |
| ... | ... | @@ -30649,7 +30650,7 @@ fn coerceAnonStructToUnion( |
| 30649 | 30650 | try sema.addDeclaredHereNote(msg, union_ty); |
| 30650 | 30651 | break :msg msg; |
| 30651 | 30652 | }; |
| 30652 | | return sema.failWithOwnedErrorMsg(msg); |
| 30653 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30653 | 30654 | }, |
| 30654 | 30655 | } |
| 30655 | 30656 | } |
| ... | ... | @@ -30721,7 +30722,7 @@ fn coerceArrayLike( |
| 30721 | 30722 | try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len}); |
| 30722 | 30723 | break :msg msg; |
| 30723 | 30724 | }; |
| 30724 | | return sema.failWithOwnedErrorMsg(msg); |
| 30725 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30725 | 30726 | } |
| 30726 | 30727 | |
| 30727 | 30728 | const dest_elem_ty = dest_ty.childType(mod); |
| ... | ... | @@ -30780,7 +30781,7 @@ fn coerceTupleToArray( |
| 30780 | 30781 | try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len}); |
| 30781 | 30782 | break :msg msg; |
| 30782 | 30783 | }; |
| 30783 | | return sema.failWithOwnedErrorMsg(msg); |
| 30784 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30784 | 30785 | } |
| 30785 | 30786 | |
| 30786 | 30787 | const dest_elems = try sema.usizeCast(block, dest_ty_src, dest_len); |
| ... | ... | @@ -30967,7 +30968,7 @@ fn coerceTupleToStruct( |
| 30967 | 30968 | if (root_msg) |msg| { |
| 30968 | 30969 | try sema.addDeclaredHereNote(msg, struct_ty); |
| 30969 | 30970 | root_msg = null; |
| 30970 | | return sema.failWithOwnedErrorMsg(msg); |
| 30971 | return sema.failWithOwnedErrorMsg(block, msg); |
| 30971 | 30972 | } |
| 30972 | 30973 | |
| 30973 | 30974 | if (runtime_src) |rs| { |
| ... | ... | @@ -31113,7 +31114,7 @@ fn coerceTupleToTuple( |
| 31113 | 31114 | if (root_msg) |msg| { |
| 31114 | 31115 | try sema.addDeclaredHereNote(msg, tuple_ty); |
| 31115 | 31116 | root_msg = null; |
| 31116 | | return sema.failWithOwnedErrorMsg(msg); |
| 31117 | return sema.failWithOwnedErrorMsg(block, msg); |
| 31117 | 31118 | } |
| 31118 | 31119 | |
| 31119 | 31120 | if (runtime_src) |rs| { |
| ... | ... | @@ -31174,7 +31175,7 @@ fn ensureDeclAnalyzed(sema: *Sema, decl_index: Decl.Index) CompileError!void { |
| 31174 | 31175 | const decl = mod.declPtr(decl_index); |
| 31175 | 31176 | if (decl.analysis == .in_progress) { |
| 31176 | 31177 | 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); |
| 31178 | 31179 | } |
| 31179 | 31180 | |
| 31180 | 31181 | mod.ensureDeclAnalyzed(decl_index) catch |err| { |
| ... | ... | @@ -31866,7 +31867,7 @@ fn analyzeSlice( |
| 31866 | 31867 | |
| 31867 | 31868 | break :msg msg; |
| 31868 | 31869 | }; |
| 31869 | | return sema.failWithOwnedErrorMsg(msg); |
| 31870 | return sema.failWithOwnedErrorMsg(block, msg); |
| 31870 | 31871 | } |
| 31871 | 31872 | } else { |
| 31872 | 31873 | runtime_src = ptr_src; |
| ... | ... | @@ -32872,7 +32873,7 @@ fn resolvePeerTypes( |
| 32872 | 32873 | .success => |ty| return ty, |
| 32873 | 32874 | else => |result| { |
| 32874 | 32875 | const msg = try result.report(sema, block, src, instructions, candidate_srcs); |
| 32875 | | return sema.failWithOwnedErrorMsg(msg); |
| 32876 | return sema.failWithOwnedErrorMsg(block, msg); |
| 32876 | 32877 | }, |
| 32877 | 32878 | } |
| 32878 | 32879 | } |
| ... | ... | @@ -34230,7 +34231,7 @@ fn resolveStructLayout(sema: *Sema, ty: Type) CompileError!void { |
| 34230 | 34231 | "struct '{}' depends on itself", |
| 34231 | 34232 | .{ty.fmt(mod)}, |
| 34232 | 34233 | ); |
| 34233 | | return sema.failWithOwnedErrorMsg(msg); |
| 34234 | return sema.failWithOwnedErrorMsg(null, msg); |
| 34234 | 34235 | }, |
| 34235 | 34236 | .have_layout, .fully_resolved_wip, .fully_resolved => return, |
| 34236 | 34237 | } |
| ... | ... | @@ -34265,7 +34266,7 @@ fn resolveStructLayout(sema: *Sema, ty: Type) CompileError!void { |
| 34265 | 34266 | "struct layout depends on it having runtime bits", |
| 34266 | 34267 | .{}, |
| 34267 | 34268 | ); |
| 34268 | | return sema.failWithOwnedErrorMsg(msg); |
| 34269 | return sema.failWithOwnedErrorMsg(null, msg); |
| 34269 | 34270 | } |
| 34270 | 34271 | |
| 34271 | 34272 | 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 { |
| 34442 | 34443 | try sema.errNote(block, src, msg, "operand must be an array, slice, tuple, or vector", .{}); |
| 34443 | 34444 | break :msg msg; |
| 34444 | 34445 | }; |
| 34445 | | return sema.failWithOwnedErrorMsg(msg); |
| 34446 | return sema.failWithOwnedErrorMsg(block, msg); |
| 34446 | 34447 | } |
| 34447 | 34448 | } |
| 34448 | 34449 | |
| ... | ... | @@ -34465,7 +34466,7 @@ fn checkMemOperand(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) !void |
| 34465 | 34466 | try sema.errNote(block, src, msg, "operand must be a slice, a many pointer or a pointer to an array", .{}); |
| 34466 | 34467 | break :msg msg; |
| 34467 | 34468 | }; |
| 34468 | | return sema.failWithOwnedErrorMsg(msg); |
| 34469 | return sema.failWithOwnedErrorMsg(block, msg); |
| 34469 | 34470 | } |
| 34470 | 34471 | |
| 34471 | 34472 | fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void { |
| ... | ... | @@ -34482,7 +34483,7 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void { |
| 34482 | 34483 | "union '{}' depends on itself", |
| 34483 | 34484 | .{ty.fmt(mod)}, |
| 34484 | 34485 | ); |
| 34485 | | return sema.failWithOwnedErrorMsg(msg); |
| 34486 | return sema.failWithOwnedErrorMsg(null, msg); |
| 34486 | 34487 | }, |
| 34487 | 34488 | .have_layout, .fully_resolved_wip, .fully_resolved => return, |
| 34488 | 34489 | } |
| ... | ... | @@ -34513,7 +34514,7 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void { |
| 34513 | 34514 | "union layout depends on it having runtime bits", |
| 34514 | 34515 | .{}, |
| 34515 | 34516 | ); |
| 34516 | | return sema.failWithOwnedErrorMsg(msg); |
| 34517 | return sema.failWithOwnedErrorMsg(null, msg); |
| 34517 | 34518 | } |
| 34518 | 34519 | } |
| 34519 | 34520 | |
| ... | ... | @@ -34771,7 +34772,7 @@ fn resolveTypeFieldsStruct( |
| 34771 | 34772 | "struct '{}' depends on itself", |
| 34772 | 34773 | .{ty.fmt(sema.mod)}, |
| 34773 | 34774 | ); |
| 34774 | | return sema.failWithOwnedErrorMsg(msg); |
| 34775 | return sema.failWithOwnedErrorMsg(null, msg); |
| 34775 | 34776 | }, |
| 34776 | 34777 | .have_field_types, |
| 34777 | 34778 | .have_layout, |
| ... | ... | @@ -34811,7 +34812,7 @@ fn resolveTypeFieldsUnion(sema: *Sema, ty: Type, union_type: InternPool.Key.Unio |
| 34811 | 34812 | "union '{}' depends on itself", |
| 34812 | 34813 | .{ty.fmt(mod)}, |
| 34813 | 34814 | ); |
| 34814 | | return sema.failWithOwnedErrorMsg(msg); |
| 34815 | return sema.failWithOwnedErrorMsg(null, msg); |
| 34815 | 34816 | }, |
| 34816 | 34817 | .have_field_types, |
| 34817 | 34818 | .have_layout, |
| ... | ... | @@ -34865,7 +34866,7 @@ fn resolveInferredErrorSet( |
| 34865 | 34866 | try sema.mod.errNoteNonLazy(ies_func_owner_decl.srcLoc(mod), msg, "generic function declared here", .{}); |
| 34866 | 34867 | break :msg msg; |
| 34867 | 34868 | }; |
| 34868 | | return sema.failWithOwnedErrorMsg(msg); |
| 34869 | return sema.failWithOwnedErrorMsg(block, msg); |
| 34869 | 34870 | } |
| 34870 | 34871 | // In this case we are dealing with the actual InferredErrorSet object that |
| 34871 | 34872 | // 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 |
| 35125 | 35126 | try sema.errNote(&block_scope, src, msg, "struct declared here", .{}); |
| 35126 | 35127 | break :msg msg; |
| 35127 | 35128 | }; |
| 35128 | | return sema.failWithOwnedErrorMsg(msg); |
| 35129 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35129 | 35130 | } |
| 35130 | 35131 | gop.value_ptr.* = .{ |
| 35131 | 35132 | .ty = Type.noreturn, |
| ... | ... | @@ -35201,7 +35202,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void |
| 35201 | 35202 | try sema.addDeclaredHereNote(msg, field_ty); |
| 35202 | 35203 | break :msg msg; |
| 35203 | 35204 | }; |
| 35204 | | return sema.failWithOwnedErrorMsg(msg); |
| 35205 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35205 | 35206 | } |
| 35206 | 35207 | if (field_ty.zigTypeTag(mod) == .NoReturn) { |
| 35207 | 35208 | const msg = msg: { |
| ... | ... | @@ -35215,7 +35216,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void |
| 35215 | 35216 | try sema.addDeclaredHereNote(msg, field_ty); |
| 35216 | 35217 | break :msg msg; |
| 35217 | 35218 | }; |
| 35218 | | return sema.failWithOwnedErrorMsg(msg); |
| 35219 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35219 | 35220 | } |
| 35220 | 35221 | if (struct_obj.layout == .Extern and !try sema.validateExternType(field.ty, .struct_field)) { |
| 35221 | 35222 | const msg = msg: { |
| ... | ... | @@ -35231,7 +35232,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void |
| 35231 | 35232 | try sema.addDeclaredHereNote(msg, field.ty); |
| 35232 | 35233 | break :msg msg; |
| 35233 | 35234 | }; |
| 35234 | | return sema.failWithOwnedErrorMsg(msg); |
| 35235 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35235 | 35236 | } else if (struct_obj.layout == .Packed and !(validatePackedType(field.ty, mod))) { |
| 35236 | 35237 | const msg = msg: { |
| 35237 | 35238 | const ty_src = mod.fieldSrcLoc(struct_obj.owner_decl, .{ |
| ... | ... | @@ -35246,7 +35247,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void |
| 35246 | 35247 | try sema.addDeclaredHereNote(msg, field.ty); |
| 35247 | 35248 | break :msg msg; |
| 35248 | 35249 | }; |
| 35249 | | return sema.failWithOwnedErrorMsg(msg); |
| 35250 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35250 | 35251 | } |
| 35251 | 35252 | |
| 35252 | 35253 | if (zir_field.align_body_len > 0) { |
| ... | ... | @@ -35434,7 +35435,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35434 | 35435 | }); |
| 35435 | 35436 | break :msg msg; |
| 35436 | 35437 | }; |
| 35437 | | return sema.failWithOwnedErrorMsg(msg); |
| 35438 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35438 | 35439 | } |
| 35439 | 35440 | enum_field_names = try sema.arena.alloc(InternPool.NullTerminatedString, fields_len); |
| 35440 | 35441 | try enum_field_vals.ensureTotalCapacity(sema.arena, fields_len); |
| ... | ... | @@ -35549,7 +35550,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35549 | 35550 | try sema.errNote(&block_scope, other_field_src, msg, "other occurrence here", .{}); |
| 35550 | 35551 | break :msg msg; |
| 35551 | 35552 | }; |
| 35552 | | return sema.failWithOwnedErrorMsg(msg); |
| 35553 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35553 | 35554 | } |
| 35554 | 35555 | } |
| 35555 | 35556 | |
| ... | ... | @@ -35594,7 +35595,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35594 | 35595 | try sema.errNote(&block_scope, src, msg, "union declared here", .{}); |
| 35595 | 35596 | break :msg msg; |
| 35596 | 35597 | }; |
| 35597 | | return sema.failWithOwnedErrorMsg(msg); |
| 35598 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35598 | 35599 | } |
| 35599 | 35600 | |
| 35600 | 35601 | if (explicit_tags_seen.len > 0) { |
| ... | ... | @@ -35612,7 +35613,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35612 | 35613 | try sema.addDeclaredHereNote(msg, union_type.tagTypePtr(ip).toType()); |
| 35613 | 35614 | break :msg msg; |
| 35614 | 35615 | }; |
| 35615 | | return sema.failWithOwnedErrorMsg(msg); |
| 35616 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35616 | 35617 | }; |
| 35617 | 35618 | // No check for duplicate because the check already happened in order |
| 35618 | 35619 | // to create the enum type in the first place. |
| ... | ... | @@ -35634,7 +35635,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35634 | 35635 | try sema.errNote(&block_scope, enum_field_src, msg, "enum field here", .{}); |
| 35635 | 35636 | break :msg msg; |
| 35636 | 35637 | }; |
| 35637 | | return sema.failWithOwnedErrorMsg(msg); |
| 35638 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35638 | 35639 | } |
| 35639 | 35640 | } |
| 35640 | 35641 | |
| ... | ... | @@ -35650,7 +35651,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35650 | 35651 | try sema.addDeclaredHereNote(msg, field_ty); |
| 35651 | 35652 | break :msg msg; |
| 35652 | 35653 | }; |
| 35653 | | return sema.failWithOwnedErrorMsg(msg); |
| 35654 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35654 | 35655 | } |
| 35655 | 35656 | const layout = union_type.getLayout(ip); |
| 35656 | 35657 | if (layout == .Extern and |
| ... | ... | @@ -35669,7 +35670,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35669 | 35670 | try sema.addDeclaredHereNote(msg, field_ty); |
| 35670 | 35671 | break :msg msg; |
| 35671 | 35672 | }; |
| 35672 | | return sema.failWithOwnedErrorMsg(msg); |
| 35673 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35673 | 35674 | } else if (layout == .Packed and !validatePackedType(field_ty, mod)) { |
| 35674 | 35675 | const msg = msg: { |
| 35675 | 35676 | const ty_src = mod.fieldSrcLoc(union_type.decl, .{ |
| ... | ... | @@ -35684,7 +35685,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35684 | 35685 | try sema.addDeclaredHereNote(msg, field_ty); |
| 35685 | 35686 | break :msg msg; |
| 35686 | 35687 | }; |
| 35687 | | return sema.failWithOwnedErrorMsg(msg); |
| 35688 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35688 | 35689 | } |
| 35689 | 35690 | |
| 35690 | 35691 | field_types.appendAssumeCapacity(field_ty.toIntern()); |
| ... | ... | @@ -35728,7 +35729,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Key.Un |
| 35728 | 35729 | try sema.addDeclaredHereNote(msg, union_type.tagTypePtr(ip).toType()); |
| 35729 | 35730 | break :msg msg; |
| 35730 | 35731 | }; |
| 35731 | | return sema.failWithOwnedErrorMsg(msg); |
| 35732 | return sema.failWithOwnedErrorMsg(&block_scope, msg); |
| 35732 | 35733 | } |
| 35733 | 35734 | } else if (enum_field_vals.count() > 0) { |
| 35734 | 35735 | 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 { |
| 36139 | 36140 | .{ty.fmt(mod)}, |
| 36140 | 36141 | ); |
| 36141 | 36142 | try sema.addFieldErrNote(ty, i, msg, "while checking this field", .{}); |
| 36142 | | return sema.failWithOwnedErrorMsg(msg); |
| 36143 | return sema.failWithOwnedErrorMsg(null, msg); |
| 36143 | 36144 | } |
| 36144 | 36145 | if (try sema.typeHasOnePossibleValue(field.ty)) |field_opv| { |
| 36145 | 36146 | field_val.* = try field_opv.intern(field.ty, mod); |
| ... | ... | @@ -36193,7 +36194,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value { |
| 36193 | 36194 | .{ty.fmt(mod)}, |
| 36194 | 36195 | ); |
| 36195 | 36196 | try sema.addFieldErrNote(ty, 0, msg, "while checking this field", .{}); |
| 36196 | | return sema.failWithOwnedErrorMsg(msg); |
| 36197 | return sema.failWithOwnedErrorMsg(null, msg); |
| 36197 | 36198 | } |
| 36198 | 36199 | const val_val = (try sema.typeHasOnePossibleValue(only_field_ty)) orelse |
| 36199 | 36200 | return null; |