| ... | @@ -153,6 +153,7 @@ pub const Block = struct { | ... | @@ -153,6 +153,7 @@ pub const Block = struct { |
| 153 | pub const Inlining = struct { | 153 | pub const Inlining = struct { |
| 154 | comptime_result: Air.Inst.Ref, | 154 | comptime_result: Air.Inst.Ref, |
| 155 | merges: Merges, | 155 | merges: Merges, |
| | 156 | err: ?*Module.ErrorMsg = null, |
| 156 | }; | 157 | }; |
| 157 | | 158 | |
| 158 | pub const Merges = struct { | 159 | pub const Merges = struct { |
| ... | @@ -1429,10 +1430,10 @@ pub fn fail( | ... | @@ -1429,10 +1430,10 @@ pub fn fail( |
| 1429 | args: anytype, | 1430 | args: anytype, |
| 1430 | ) CompileError { | 1431 | ) CompileError { |
| 1431 | const err_msg = try sema.errMsg(block, src, format, args); | 1432 | const err_msg = try sema.errMsg(block, src, format, args); |
| 1432 | return sema.failWithOwnedErrorMsg(err_msg); | 1433 | return sema.failWithOwnedErrorMsg(block, err_msg); |
| 1433 | } | 1434 | } |
| 1434 | | 1435 | |
| 1435 | fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError { | 1436 | fn failWithOwnedErrorMsg(sema: *Sema, block: *Block, err_msg: *Module.ErrorMsg) CompileError { |
| 1436 | @setCold(true); | 1437 | @setCold(true); |
| 1437 | | 1438 | |
| 1438 | if (crash_report.is_enabled and sema.mod.comp.debug_compile_errors) { | 1439 | if (crash_report.is_enabled and sema.mod.comp.debug_compile_errors) { |
| ... | @@ -1445,6 +1446,7 @@ fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError { | ... | @@ -1445,6 +1446,7 @@ fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError { |
| 1445 | } | 1446 | } |
| 1446 | | 1447 | |
| 1447 | const mod = sema.mod; | 1448 | const mod = sema.mod; |
| | 1449 | if (block.inlining) |some| some.err = err_msg; |
| 1448 | | 1450 | |
| 1449 | { | 1451 | { |
| 1450 | errdefer err_msg.destroy(mod.gpa); | 1452 | errdefer err_msg.destroy(mod.gpa); |
| ... | @@ -1969,7 +1971,7 @@ fn zirEnumDecl( | ... | @@ -1969,7 +1971,7 @@ fn zirEnumDecl( |
| 1969 | try sema.errNote(block, other_tag_src, msg, "other tag here", .{}); | 1971 | try sema.errNote(block, other_tag_src, msg, "other tag here", .{}); |
| 1970 | break :msg msg; | 1972 | break :msg msg; |
| 1971 | }; | 1973 | }; |
| 1972 | return sema.failWithOwnedErrorMsg(msg); | 1974 | return sema.failWithOwnedErrorMsg(block, msg); |
| 1973 | } | 1975 | } |
| 1974 | | 1976 | |
| 1975 | if (has_tag_value) { | 1977 | if (has_tag_value) { |
| ... | @@ -2316,7 +2318,7 @@ fn zirIndexablePtrLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileE | ... | @@ -2316,7 +2318,7 @@ fn zirIndexablePtrLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileE |
| 2316 | ); | 2318 | ); |
| 2317 | break :msg msg; | 2319 | break :msg msg; |
| 2318 | }; | 2320 | }; |
| 2319 | return sema.failWithOwnedErrorMsg(msg); | 2321 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2320 | } | 2322 | } |
| 2321 | | 2323 | |
| 2322 | return sema.fieldVal(block, src, object, "len", src); | 2324 | return sema.fieldVal(block, src, object, "len", src); |
| ... | @@ -2772,7 +2774,7 @@ fn validateUnionInit( | ... | @@ -2772,7 +2774,7 @@ fn validateUnionInit( |
| 2772 | try sema.addDeclaredHereNote(msg, union_ty); | 2774 | try sema.addDeclaredHereNote(msg, union_ty); |
| 2773 | break :msg msg; | 2775 | break :msg msg; |
| 2774 | }; | 2776 | }; |
| 2775 | return sema.failWithOwnedErrorMsg(msg); | 2777 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2776 | } | 2778 | } |
| 2777 | | 2779 | |
| 2778 | if (is_comptime or block.is_comptime) { | 2780 | if (is_comptime or block.is_comptime) { |
| ... | @@ -2889,7 +2891,7 @@ fn validateStructInit( | ... | @@ -2889,7 +2891,7 @@ fn validateStructInit( |
| 2889 | try sema.errNote(block, other_field_src, msg, "other field here", .{}); | 2891 | try sema.errNote(block, other_field_src, msg, "other field here", .{}); |
| 2890 | break :msg msg; | 2892 | break :msg msg; |
| 2891 | }; | 2893 | }; |
| 2892 | return sema.failWithOwnedErrorMsg(msg); | 2894 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2893 | } | 2895 | } |
| 2894 | found_fields[field_index] = field_ptr; | 2896 | found_fields[field_index] = field_ptr; |
| 2895 | } | 2897 | } |
| ... | @@ -2936,7 +2938,7 @@ fn validateStructInit( | ... | @@ -2936,7 +2938,7 @@ fn validateStructInit( |
| 2936 | "struct '{s}' declared here", | 2938 | "struct '{s}' declared here", |
| 2937 | .{fqn}, | 2939 | .{fqn}, |
| 2938 | ); | 2940 | ); |
| 2939 | return sema.failWithOwnedErrorMsg(msg); | 2941 | return sema.failWithOwnedErrorMsg(block, msg); |
| 2940 | } | 2942 | } |
| 2941 | | 2943 | |
| 2942 | return; | 2944 | return; |
| ... | @@ -3043,7 +3045,7 @@ fn validateStructInit( | ... | @@ -3043,7 +3045,7 @@ fn validateStructInit( |
| 3043 | "struct '{s}' declared here", | 3045 | "struct '{s}' declared here", |
| 3044 | .{fqn}, | 3046 | .{fqn}, |
| 3045 | ); | 3047 | ); |
| 3046 | return sema.failWithOwnedErrorMsg(msg); | 3048 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3047 | } | 3049 | } |
| 3048 | | 3050 | |
| 3049 | if (struct_is_comptime) { | 3051 | if (struct_is_comptime) { |
| ... | @@ -3215,7 +3217,7 @@ fn failWithBadMemberAccess( | ... | @@ -3215,7 +3217,7 @@ fn failWithBadMemberAccess( |
| 3215 | try sema.addDeclaredHereNote(msg, agg_ty); | 3217 | try sema.addDeclaredHereNote(msg, agg_ty); |
| 3216 | break :msg msg; | 3218 | break :msg msg; |
| 3217 | }; | 3219 | }; |
| 3218 | return sema.failWithOwnedErrorMsg(msg); | 3220 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3219 | } | 3221 | } |
| 3220 | | 3222 | |
| 3221 | fn failWithBadStructFieldAccess( | 3223 | fn failWithBadStructFieldAccess( |
| ... | @@ -3241,7 +3243,7 @@ fn failWithBadStructFieldAccess( | ... | @@ -3241,7 +3243,7 @@ fn failWithBadStructFieldAccess( |
| 3241 | try sema.mod.errNoteNonLazy(struct_obj.srcLoc(), msg, "struct declared here", .{}); | 3243 | try sema.mod.errNoteNonLazy(struct_obj.srcLoc(), msg, "struct declared here", .{}); |
| 3242 | break :msg msg; | 3244 | break :msg msg; |
| 3243 | }; | 3245 | }; |
| 3244 | return sema.failWithOwnedErrorMsg(msg); | 3246 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3245 | } | 3247 | } |
| 3246 | | 3248 | |
| 3247 | fn failWithBadUnionFieldAccess( | 3249 | fn failWithBadUnionFieldAccess( |
| ... | @@ -3267,7 +3269,7 @@ fn failWithBadUnionFieldAccess( | ... | @@ -3267,7 +3269,7 @@ fn failWithBadUnionFieldAccess( |
| 3267 | try sema.mod.errNoteNonLazy(union_obj.srcLoc(), msg, "union declared here", .{}); | 3269 | try sema.mod.errNoteNonLazy(union_obj.srcLoc(), msg, "union declared here", .{}); |
| 3268 | break :msg msg; | 3270 | break :msg msg; |
| 3269 | }; | 3271 | }; |
| 3270 | return sema.failWithOwnedErrorMsg(msg); | 3272 | return sema.failWithOwnedErrorMsg(block, msg); |
| 3271 | } | 3273 | } |
| 3272 | | 3274 | |
| 3273 | fn addDeclaredHereNote(sema: *Sema, parent: *Module.ErrorMsg, decl_ty: Type) !void { | 3275 | fn addDeclaredHereNote(sema: *Sema, parent: *Module.ErrorMsg, decl_ty: Type) !void { |
| ... | @@ -3685,7 +3687,7 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr | ... | @@ -3685,7 +3687,7 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr |
| 3685 | @import("clang.zig").Stage2ErrorMsg.delete(c_import_res.errors.ptr, c_import_res.errors.len); | 3687 | @import("clang.zig").Stage2ErrorMsg.delete(c_import_res.errors.ptr, c_import_res.errors.len); |
| 3686 | break :msg msg; | 3688 | break :msg msg; |
| 3687 | }; | 3689 | }; |
| 3688 | return sema.failWithOwnedErrorMsg(msg); | 3690 | return sema.failWithOwnedErrorMsg(parent_block, msg); |
| 3689 | } | 3691 | } |
| 3690 | const c_import_pkg = Package.create( | 3692 | const c_import_pkg = Package.create( |
| 3691 | sema.gpa, | 3693 | sema.gpa, |
| ... | @@ -4043,7 +4045,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErr | ... | @@ -4043,7 +4045,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErr |
| 4043 | try sema.errNote(block, src, msg, "other instance here", .{}); | 4045 | try sema.errNote(block, src, msg, "other instance here", .{}); |
| 4044 | break :msg msg; | 4046 | break :msg msg; |
| 4045 | }; | 4047 | }; |
| 4046 | return sema.failWithOwnedErrorMsg(msg); | 4048 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4047 | } | 4049 | } |
| 4048 | gop.value_ptr.* = .{ .alignment = alignment, .src = src }; | 4050 | gop.value_ptr.* = .{ .alignment = alignment, .src = src }; |
| 4049 | } | 4051 | } |
| ... | @@ -4228,7 +4230,7 @@ fn lookupInNamespace( | ... | @@ -4228,7 +4230,7 @@ fn lookupInNamespace( |
| 4228 | } | 4230 | } |
| 4229 | break :msg msg; | 4231 | break :msg msg; |
| 4230 | }; | 4232 | }; |
| 4231 | return sema.failWithOwnedErrorMsg(msg); | 4233 | return sema.failWithOwnedErrorMsg(block, msg); |
| 4232 | }, | 4234 | }, |
| 4233 | } | 4235 | } |
| 4234 | } else if (namespace.decls.get(ident_name)) |decl| { | 4236 | } else if (namespace.decls.get(ident_name)) |decl| { |
| ... | @@ -4642,6 +4644,12 @@ fn analyzeCall( | ... | @@ -4642,6 +4644,12 @@ fn analyzeCall( |
| 4642 | _ = sema.analyzeBody(&child_block, fn_info.body) catch |err| switch (err) { | 4644 | _ = sema.analyzeBody(&child_block, fn_info.body) catch |err| switch (err) { |
| 4643 | error.ComptimeReturn => break :result inlining.comptime_result, | 4645 | error.ComptimeReturn => break :result inlining.comptime_result, |
| 4644 | error.ComptimeBreak => unreachable, // Can't break through a fn call. | 4646 | error.ComptimeBreak => unreachable, // Can't break through a fn call. |
| | 4647 | error.AnalysisFail => { |
| | 4648 | const err_msg = inlining.err orelse return err; |
| | 4649 | try sema.errNote(block, call_src, err_msg, "called from here", .{}); |
| | 4650 | if (block.inlining) |some| some.err = err_msg; |
| | 4651 | return err; |
| | 4652 | }, |
| 4645 | else => |e| return e, | 4653 | else => |e| return e, |
| 4646 | }; | 4654 | }; |
| 4647 | break :result try sema.analyzeBlockBody(block, call_src, &child_block, merges); | 4655 | break :result try sema.analyzeBlockBody(block, call_src, &child_block, merges); |
| ... | @@ -5266,7 +5274,7 @@ fn zirMergeErrorSets(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr | ... | @@ -5266,7 +5274,7 @@ fn zirMergeErrorSets(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr |
| 5266 | try sema.errNote(block, src, msg, "'||' merges error sets; 'or' performs boolean OR", .{}); | 5274 | try sema.errNote(block, src, msg, "'||' merges error sets; 'or' performs boolean OR", .{}); |
| 5267 | break :msg msg; | 5275 | break :msg msg; |
| 5268 | }; | 5276 | }; |
| 5269 | return sema.failWithOwnedErrorMsg(msg); | 5277 | return sema.failWithOwnedErrorMsg(block, msg); |
| 5270 | } | 5278 | } |
| 5271 | const lhs_ty = try sema.analyzeAsType(block, lhs_src, lhs); | 5279 | const lhs_ty = try sema.analyzeAsType(block, lhs_src, lhs); |
| 5272 | const rhs_ty = try sema.analyzeAsType(block, rhs_src, rhs); | 5280 | const rhs_ty = try sema.analyzeAsType(block, rhs_src, rhs); |
| ... | @@ -5396,7 +5404,7 @@ fn zirIntToEnum(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A | ... | @@ -5396,7 +5404,7 @@ fn zirIntToEnum(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A |
| 5396 | ); | 5404 | ); |
| 5397 | break :msg msg; | 5405 | break :msg msg; |
| 5398 | }; | 5406 | }; |
| 5399 | return sema.failWithOwnedErrorMsg(msg); | 5407 | return sema.failWithOwnedErrorMsg(block, msg); |
| 5400 | } | 5408 | } |
| 5401 | return sema.addConstant(dest_ty, int_val); | 5409 | return sema.addConstant(dest_ty, int_val); |
| 5402 | } | 5410 | } |
| ... | @@ -6606,7 +6614,7 @@ fn zirSwitchCond( | ... | @@ -6606,7 +6614,7 @@ fn zirSwitchCond( |
| 6606 | try sema.addDeclaredHereNote(msg, union_ty); | 6614 | try sema.addDeclaredHereNote(msg, union_ty); |
| 6607 | break :msg msg; | 6615 | break :msg msg; |
| 6608 | }; | 6616 | }; |
| 6609 | return sema.failWithOwnedErrorMsg(msg); | 6617 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6610 | }; | 6618 | }; |
| 6611 | return sema.unionToTag(block, enum_ty, operand, src); | 6619 | return sema.unionToTag(block, enum_ty, operand, src); |
| 6612 | }, | 6620 | }, |
| ... | @@ -6686,7 +6694,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError | ... | @@ -6686,7 +6694,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError |
| 6686 | ); | 6694 | ); |
| 6687 | break :msg msg; | 6695 | break :msg msg; |
| 6688 | }; | 6696 | }; |
| 6689 | return sema.failWithOwnedErrorMsg(msg); | 6697 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6690 | } | 6698 | } |
| 6691 | | 6699 | |
| 6692 | // Validate for duplicate items, missing else prong, and invalid range. | 6700 | // Validate for duplicate items, missing else prong, and invalid range. |
| ... | @@ -6778,7 +6786,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError | ... | @@ -6778,7 +6786,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError |
| 6778 | ); | 6786 | ); |
| 6779 | break :msg msg; | 6787 | break :msg msg; |
| 6780 | }; | 6788 | }; |
| 6781 | return sema.failWithOwnedErrorMsg(msg); | 6789 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6782 | } | 6790 | } |
| 6783 | }, | 6791 | }, |
| 6784 | .under => { | 6792 | .under => { |
| ... | @@ -6892,7 +6900,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError | ... | @@ -6892,7 +6900,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError |
| 6892 | "error set '{}' declared here", | 6900 | "error set '{}' declared here", |
| 6893 | .{operand_ty}, | 6901 | .{operand_ty}, |
| 6894 | ); | 6902 | ); |
| 6895 | return sema.failWithOwnedErrorMsg(msg); | 6903 | return sema.failWithOwnedErrorMsg(block, msg); |
| 6896 | } | 6904 | } |
| 6897 | | 6905 | |
| 6898 | if (special_prong == .@"else") { | 6906 | if (special_prong == .@"else") { |
| ... | @@ -7571,7 +7579,7 @@ fn validateSwitchItemEnum( | ... | @@ -7571,7 +7579,7 @@ fn validateSwitchItemEnum( |
| 7571 | ); | 7579 | ); |
| 7572 | break :msg msg; | 7580 | break :msg msg; |
| 7573 | }; | 7581 | }; |
| 7574 | return sema.failWithOwnedErrorMsg(msg); | 7582 | return sema.failWithOwnedErrorMsg(block, msg); |
| 7575 | }; | 7583 | }; |
| 7576 | const maybe_prev_src = seen_fields[field_index]; | 7584 | const maybe_prev_src = seen_fields[field_index]; |
| 7577 | seen_fields[field_index] = switch_prong_src; | 7585 | seen_fields[field_index] = switch_prong_src; |
| ... | @@ -7624,7 +7632,7 @@ fn validateSwitchDupe( | ... | @@ -7624,7 +7632,7 @@ fn validateSwitchDupe( |
| 7624 | ); | 7632 | ); |
| 7625 | break :msg msg; | 7633 | break :msg msg; |
| 7626 | }; | 7634 | }; |
| 7627 | return sema.failWithOwnedErrorMsg(msg); | 7635 | return sema.failWithOwnedErrorMsg(block, msg); |
| 7628 | } | 7636 | } |
| 7629 | | 7637 | |
| 7630 | fn validateSwitchItemBool( | 7638 | fn validateSwitchItemBool( |
| ... | @@ -7693,7 +7701,7 @@ fn validateSwitchNoRange( | ... | @@ -7693,7 +7701,7 @@ fn validateSwitchNoRange( |
| 7693 | ); | 7701 | ); |
| 7694 | break :msg msg; | 7702 | break :msg msg; |
| 7695 | }; | 7703 | }; |
| 7696 | return sema.failWithOwnedErrorMsg(msg); | 7704 | return sema.failWithOwnedErrorMsg(block, msg); |
| 7697 | } | 7705 | } |
| 7698 | | 7706 | |
| 7699 | fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { | 7707 | fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { |
| ... | @@ -11569,7 +11577,7 @@ fn zirStructInit( | ... | @@ -11569,7 +11577,7 @@ fn zirStructInit( |
| 11569 | try sema.errNote(block, other_field_src, msg, "other field here", .{}); | 11577 | try sema.errNote(block, other_field_src, msg, "other field here", .{}); |
| 11570 | break :msg msg; | 11578 | break :msg msg; |
| 11571 | }; | 11579 | }; |
| 11572 | return sema.failWithOwnedErrorMsg(msg); | 11580 | return sema.failWithOwnedErrorMsg(block, msg); |
| 11573 | } | 11581 | } |
| 11574 | found_fields[field_index] = item.data.field_type; | 11582 | found_fields[field_index] = item.data.field_type; |
| 11575 | field_inits[field_index] = sema.resolveInst(item.data.init); | 11583 | field_inits[field_index] = sema.resolveInst(item.data.init); |
| ... | @@ -11647,7 +11655,7 @@ fn finishStructInit( | ... | @@ -11647,7 +11655,7 @@ fn finishStructInit( |
| 11647 | "struct '{s}' declared here", | 11655 | "struct '{s}' declared here", |
| 11648 | .{fqn}, | 11656 | .{fqn}, |
| 11649 | ); | 11657 | ); |
| 11650 | return sema.failWithOwnedErrorMsg(msg); | 11658 | return sema.failWithOwnedErrorMsg(block, msg); |
| 11651 | } | 11659 | } |
| 11652 | | 11660 | |
| 11653 | const is_comptime = for (field_inits) |field_init| { | 11661 | const is_comptime = for (field_inits) |field_init| { |
| ... | @@ -12130,7 +12138,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air | ... | @@ -12130,7 +12138,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 12130 | try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{}); | 12138 | try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{}); |
| 12131 | break :msg msg; | 12139 | break :msg msg; |
| 12132 | }; | 12140 | }; |
| 12133 | return sema.failWithOwnedErrorMsg(msg); | 12141 | return sema.failWithOwnedErrorMsg(block, msg); |
| 12134 | }, | 12142 | }, |
| 12135 | else => return sema.fail(block, operand_src, "expected enum or union; found {}", .{ | 12143 | else => return sema.fail(block, operand_src, "expected enum or union; found {}", .{ |
| 12136 | operand_ty, | 12144 | operand_ty, |
| ... | @@ -12148,7 +12156,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air | ... | @@ -12148,7 +12156,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 12148 | try sema.mod.errNoteNonLazy(enum_decl.srcLoc(), msg, "declared here", .{}); | 12156 | try sema.mod.errNoteNonLazy(enum_decl.srcLoc(), msg, "declared here", .{}); |
| 12149 | break :msg msg; | 12157 | break :msg msg; |
| 12150 | }; | 12158 | }; |
| 12151 | return sema.failWithOwnedErrorMsg(msg); | 12159 | return sema.failWithOwnedErrorMsg(block, msg); |
| 12152 | }; | 12160 | }; |
| 12153 | const field_name = enum_ty.enumFieldName(field_index); | 12161 | const field_name = enum_ty.enumFieldName(field_index); |
| 12154 | return sema.addStrLit(block, field_name); | 12162 | return sema.addStrLit(block, field_name); |
| ... | @@ -12624,7 +12632,7 @@ fn zirTruncate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai | ... | @@ -12624,7 +12632,7 @@ fn zirTruncate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai |
| 12624 | }); | 12632 | }); |
| 12625 | break :msg msg; | 12633 | break :msg msg; |
| 12626 | }; | 12634 | }; |
| 12627 | return sema.failWithOwnedErrorMsg(msg); | 12635 | return sema.failWithOwnedErrorMsg(block, msg); |
| 12628 | } | 12636 | } |
| 12629 | } | 12637 | } |
| 12630 | | 12638 | |
| ... | @@ -12884,7 +12892,7 @@ fn checkPtrOperand( | ... | @@ -12884,7 +12892,7 @@ fn checkPtrOperand( |
| 12884 | | 12892 | |
| 12885 | break :msg msg; | 12893 | break :msg msg; |
| 12886 | }; | 12894 | }; |
| 12887 | return sema.failWithOwnedErrorMsg(msg); | 12895 | return sema.failWithOwnedErrorMsg(block, msg); |
| 12888 | }, | 12896 | }, |
| 12889 | .Optional => if (ty.isPtrLikeOptional()) return, | 12897 | .Optional => if (ty.isPtrLikeOptional()) return, |
| 12890 | else => {}, | 12898 | else => {}, |
| ... | @@ -12914,7 +12922,7 @@ fn checkPtrType( | ... | @@ -12914,7 +12922,7 @@ fn checkPtrType( |
| 12914 | | 12922 | |
| 12915 | break :msg msg; | 12923 | break :msg msg; |
| 12916 | }; | 12924 | }; |
| 12917 | return sema.failWithOwnedErrorMsg(msg); | 12925 | return sema.failWithOwnedErrorMsg(block, msg); |
| 12918 | }, | 12926 | }, |
| 12919 | .Optional => if (ty.isPtrLikeOptional()) return, | 12927 | .Optional => if (ty.isPtrLikeOptional()) return, |
| 12920 | else => {}, | 12928 | else => {}, |
| ... | @@ -13037,7 +13045,7 @@ fn checkComptimeVarStore( | ... | @@ -13037,7 +13045,7 @@ fn checkComptimeVarStore( |
| 13037 | try sema.errNote(block, cond_src, msg, "runtime condition here", .{}); | 13045 | try sema.errNote(block, cond_src, msg, "runtime condition here", .{}); |
| 13038 | break :msg msg; | 13046 | break :msg msg; |
| 13039 | }; | 13047 | }; |
| 13040 | return sema.failWithOwnedErrorMsg(msg); | 13048 | return sema.failWithOwnedErrorMsg(block, msg); |
| 13041 | } | 13049 | } |
| 13042 | if (block.runtime_loop) |loop_src| { | 13050 | if (block.runtime_loop) |loop_src| { |
| 13043 | const msg = msg: { | 13051 | const msg = msg: { |
| ... | @@ -13046,7 +13054,7 @@ fn checkComptimeVarStore( | ... | @@ -13046,7 +13054,7 @@ fn checkComptimeVarStore( |
| 13046 | try sema.errNote(block, loop_src, msg, "non-inline loop here", .{}); | 13054 | try sema.errNote(block, loop_src, msg, "non-inline loop here", .{}); |
| 13047 | break :msg msg; | 13055 | break :msg msg; |
| 13048 | }; | 13056 | }; |
| 13049 | return sema.failWithOwnedErrorMsg(msg); | 13057 | return sema.failWithOwnedErrorMsg(block, msg); |
| 13050 | } | 13058 | } |
| 13051 | unreachable; | 13059 | unreachable; |
| 13052 | } | 13060 | } |
| ... | @@ -13114,7 +13122,7 @@ fn checkSimdBinOp( | ... | @@ -13114,7 +13122,7 @@ fn checkSimdBinOp( |
| 13114 | try sema.errNote(block, rhs_src, msg, "length {d} here", .{rhs_len}); | 13122 | try sema.errNote(block, rhs_src, msg, "length {d} here", .{rhs_len}); |
| 13115 | break :msg msg; | 13123 | break :msg msg; |
| 13116 | }; | 13124 | }; |
| 13117 | return sema.failWithOwnedErrorMsg(msg); | 13125 | return sema.failWithOwnedErrorMsg(block, msg); |
| 13118 | } | 13126 | } |
| 13119 | vec_len = try sema.usizeCast(block, lhs_src, lhs_len); | 13127 | vec_len = try sema.usizeCast(block, lhs_src, lhs_len); |
| 13120 | } else if (lhs_zig_ty_tag == .Vector or rhs_zig_ty_tag == .Vector) { | 13128 | } else if (lhs_zig_ty_tag == .Vector or rhs_zig_ty_tag == .Vector) { |
| ... | @@ -13132,7 +13140,7 @@ fn checkSimdBinOp( | ... | @@ -13132,7 +13140,7 @@ fn checkSimdBinOp( |
| 13132 | } | 13140 | } |
| 13133 | break :msg msg; | 13141 | break :msg msg; |
| 13134 | }; | 13142 | }; |
| 13135 | return sema.failWithOwnedErrorMsg(msg); | 13143 | return sema.failWithOwnedErrorMsg(block, msg); |
| 13136 | } | 13144 | } |
| 13137 | const result_ty = try sema.resolvePeerTypes(block, src, &.{ uncasted_lhs, uncasted_rhs }, .{ | 13145 | const result_ty = try sema.resolvePeerTypes(block, src, &.{ uncasted_lhs, uncasted_rhs }, .{ |
| 13138 | .override = &[_]LazySrcLoc{ lhs_src, rhs_src }, | 13146 | .override = &[_]LazySrcLoc{ lhs_src, rhs_src }, |
| ... | @@ -14263,7 +14271,7 @@ fn validateVarType( | ... | @@ -14263,7 +14271,7 @@ fn validateVarType( |
| 14263 | | 14271 | |
| 14264 | break :msg msg; | 14272 | break :msg msg; |
| 14265 | }; | 14273 | }; |
| 14266 | return sema.failWithOwnedErrorMsg(msg); | 14274 | return sema.failWithOwnedErrorMsg(block, msg); |
| 14267 | } | 14275 | } |
| 14268 | | 14276 | |
| 14269 | fn explainWhyTypeIsComptime( | 14277 | fn explainWhyTypeIsComptime( |
| ... | @@ -15037,7 +15045,7 @@ fn namespaceLookup( | ... | @@ -15037,7 +15045,7 @@ fn namespaceLookup( |
| 15037 | try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{}); | 15045 | try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{}); |
| 15038 | break :msg msg; | 15046 | break :msg msg; |
| 15039 | }; | 15047 | }; |
| 15040 | return sema.failWithOwnedErrorMsg(msg); | 15048 | return sema.failWithOwnedErrorMsg(block, msg); |
| 15041 | } | 15049 | } |
| 15042 | return decl; | 15050 | return decl; |
| 15043 | } | 15051 | } |
| ... | @@ -15961,7 +15969,7 @@ fn coerce( | ... | @@ -15961,7 +15969,7 @@ fn coerce( |
| 15961 | ); | 15969 | ); |
| 15962 | break :msg msg; | 15970 | break :msg msg; |
| 15963 | }; | 15971 | }; |
| 15964 | return sema.failWithOwnedErrorMsg(msg); | 15972 | return sema.failWithOwnedErrorMsg(block, msg); |
| 15965 | }; | 15973 | }; |
| 15966 | return sema.addConstant( | 15974 | return sema.addConstant( |
| 15967 | dest_ty, | 15975 | dest_ty, |
| ... | @@ -17034,7 +17042,7 @@ fn coerceEnumToUnion( | ... | @@ -17034,7 +17042,7 @@ fn coerceEnumToUnion( |
| 17034 | try sema.addDeclaredHereNote(msg, union_ty); | 17042 | try sema.addDeclaredHereNote(msg, union_ty); |
| 17035 | break :msg msg; | 17043 | break :msg msg; |
| 17036 | }; | 17044 | }; |
| 17037 | return sema.failWithOwnedErrorMsg(msg); | 17045 | return sema.failWithOwnedErrorMsg(block, msg); |
| 17038 | }; | 17046 | }; |
| 17039 | | 17047 | |
| 17040 | const enum_tag = try sema.coerce(block, tag_ty, inst, inst_src); | 17048 | const enum_tag = try sema.coerce(block, tag_ty, inst, inst_src); |
| ... | @@ -17049,7 +17057,7 @@ fn coerceEnumToUnion( | ... | @@ -17049,7 +17057,7 @@ fn coerceEnumToUnion( |
| 17049 | try sema.addDeclaredHereNote(msg, union_ty); | 17057 | try sema.addDeclaredHereNote(msg, union_ty); |
| 17050 | break :msg msg; | 17058 | break :msg msg; |
| 17051 | }; | 17059 | }; |
| 17052 | return sema.failWithOwnedErrorMsg(msg); | 17060 | return sema.failWithOwnedErrorMsg(block, msg); |
| 17053 | }; | 17061 | }; |
| 17054 | const field = union_obj.fields.values()[field_index]; | 17062 | const field = union_obj.fields.values()[field_index]; |
| 17055 | const field_ty = try sema.resolveTypeFields(block, inst_src, field.ty); | 17063 | const field_ty = try sema.resolveTypeFields(block, inst_src, field.ty); |
| ... | @@ -17064,7 +17072,7 @@ fn coerceEnumToUnion( | ... | @@ -17064,7 +17072,7 @@ fn coerceEnumToUnion( |
| 17064 | try sema.addDeclaredHereNote(msg, union_ty); | 17072 | try sema.addDeclaredHereNote(msg, union_ty); |
| 17065 | break :msg msg; | 17073 | break :msg msg; |
| 17066 | }; | 17074 | }; |
| 17067 | return sema.failWithOwnedErrorMsg(msg); | 17075 | return sema.failWithOwnedErrorMsg(block, msg); |
| 17068 | }; | 17076 | }; |
| 17069 | | 17077 | |
| 17070 | return sema.addConstant(union_ty, try Value.Tag.@"union".create(sema.arena, .{ | 17078 | return sema.addConstant(union_ty, try Value.Tag.@"union".create(sema.arena, .{ |
| ... | @@ -17084,7 +17092,7 @@ fn coerceEnumToUnion( | ... | @@ -17084,7 +17092,7 @@ fn coerceEnumToUnion( |
| 17084 | try sema.addDeclaredHereNote(msg, tag_ty); | 17092 | try sema.addDeclaredHereNote(msg, tag_ty); |
| 17085 | break :msg msg; | 17093 | break :msg msg; |
| 17086 | }; | 17094 | }; |
| 17087 | return sema.failWithOwnedErrorMsg(msg); | 17095 | return sema.failWithOwnedErrorMsg(block, msg); |
| 17088 | } | 17096 | } |
| 17089 | | 17097 | |
| 17090 | // If the union has all fields 0 bits, the union value is just the enum value. | 17098 | // If the union has all fields 0 bits, the union value is just the enum value. |
| ... | @@ -17102,7 +17110,7 @@ fn coerceEnumToUnion( | ... | @@ -17102,7 +17110,7 @@ fn coerceEnumToUnion( |
| 17102 | try sema.addDeclaredHereNote(msg, union_ty); | 17110 | try sema.addDeclaredHereNote(msg, union_ty); |
| 17103 | break :msg msg; | 17111 | break :msg msg; |
| 17104 | }; | 17112 | }; |
| 17105 | return sema.failWithOwnedErrorMsg(msg); | 17113 | return sema.failWithOwnedErrorMsg(block, msg); |
| 17106 | } | 17114 | } |
| 17107 | | 17115 | |
| 17108 | fn coerceAnonStructToUnion( | 17116 | fn coerceAnonStructToUnion( |
| ... | @@ -17131,7 +17139,7 @@ fn coerceAnonStructToUnion( | ... | @@ -17131,7 +17139,7 @@ fn coerceAnonStructToUnion( |
| 17131 | try sema.addDeclaredHereNote(msg, union_ty); | 17139 | try sema.addDeclaredHereNote(msg, union_ty); |
| 17132 | break :msg msg; | 17140 | break :msg msg; |
| 17133 | }; | 17141 | }; |
| 17134 | return sema.failWithOwnedErrorMsg(msg); | 17142 | return sema.failWithOwnedErrorMsg(block, msg); |
| 17135 | } | 17143 | } |
| 17136 | | 17144 | |
| 17137 | const field_name = anon_struct.names[0]; | 17145 | const field_name = anon_struct.names[0]; |
| ... | @@ -17176,7 +17184,7 @@ fn coerceArrayLike( | ... | @@ -17176,7 +17184,7 @@ fn coerceArrayLike( |
| 17176 | try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len}); | 17184 | try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len}); |
| 17177 | break :msg msg; | 17185 | break :msg msg; |
| 17178 | }; | 17186 | }; |
| 17179 | return sema.failWithOwnedErrorMsg(msg); | 17187 | return sema.failWithOwnedErrorMsg(block, msg); |
| 17180 | } | 17188 | } |
| 17181 | | 17189 | |
| 17182 | const target = sema.mod.getTarget(); | 17190 | const target = sema.mod.getTarget(); |
| ... | @@ -17248,7 +17256,7 @@ fn coerceTupleToArray( | ... | @@ -17248,7 +17256,7 @@ fn coerceTupleToArray( |
| 17248 | try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len}); | 17256 | try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len}); |
| 17249 | break :msg msg; | 17257 | break :msg msg; |
| 17250 | }; | 17258 | }; |
| 17251 | return sema.failWithOwnedErrorMsg(msg); | 17259 | return sema.failWithOwnedErrorMsg(block, msg); |
| 17252 | } | 17260 | } |
| 17253 | | 17261 | |
| 17254 | const element_vals = try sema.arena.alloc(Value, dest_len); | 17262 | const element_vals = try sema.arena.alloc(Value, dest_len); |
| ... | @@ -18446,7 +18454,7 @@ fn resolvePeerTypes( | ... | @@ -18446,7 +18454,7 @@ fn resolvePeerTypes( |
| 18446 | | 18454 | |
| 18447 | break :msg msg; | 18455 | break :msg msg; |
| 18448 | }; | 18456 | }; |
| 18449 | return sema.failWithOwnedErrorMsg(msg); | 18457 | return sema.failWithOwnedErrorMsg(block, msg); |
| 18450 | } | 18458 | } |
| 18451 | | 18459 | |
| 18452 | const chosen_ty = sema.typeOf(chosen); | 18460 | const chosen_ty = sema.typeOf(chosen); |