authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-08-02 19:54:13+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-08-03 16:45:33+03:00
log797ded47f05ce033be58d3fb78d777ec3218048b
tree5e8e29cbb6023a41accaba91eddccd9ee535929e
parent02112f88364d0564346a71d4f9fcd1936547d725

Sema: move last error message from `Inlining` to `Sema`


1 files changed, 109 insertions(+), 109 deletions(-)

src/Sema.zig+109-109
......@@ -74,6 +74,8 @@ types_to_resolve: std.ArrayListUnmanaged(Air.Inst.Ref) = .{},
7474/// Sema must convert comptime control flow to runtime control flow, which means
7575/// breaking from a block.
7676post_hoc_blocks: std.AutoHashMapUnmanaged(Air.Inst.Index, *LabeledBlock) = .{},
77/// Populated with the last compile error created.
78err: ?*Module.ErrorMsg = null,
7779
7880const std = @import("std");
7981const mem = std.mem;
......@@ -174,7 +176,6 @@ pub const Block = struct {
174176 pub const Inlining = struct {
175177 comptime_result: Air.Inst.Ref,
176178 merges: Merges,
177 err: ?*Module.ErrorMsg = null,
178179 };
179180
180181 pub const Merges = struct {
......@@ -1159,7 +1160,7 @@ fn analyzeBodyInner(
11591160 try sema.errNote(block, runtime_src, msg, "runtime control flow here", .{});
11601161 break :msg msg;
11611162 };
1162 return sema.failWithOwnedErrorMsg(block, msg);
1163 return sema.failWithOwnedErrorMsg(msg);
11631164 }
11641165 }
11651166 i += 1;
......@@ -1738,7 +1739,7 @@ fn failWithNeededComptime(sema: *Sema, block: *Block, src: LazySrcLoc, reason: [
17381739 try sema.errNote(block, src, msg, "{s}", .{reason});
17391740 break :msg msg;
17401741 };
1741 return sema.failWithOwnedErrorMsg(block, msg);
1742 return sema.failWithOwnedErrorMsg(msg);
17421743}
17431744
17441745fn failWithUseOfUndef(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError {
......@@ -1770,7 +1771,7 @@ fn failWithArrayInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty
17701771 }
17711772 break :msg msg;
17721773 };
1773 return sema.failWithOwnedErrorMsg(block, msg);
1774 return sema.failWithOwnedErrorMsg(msg);
17741775}
17751776
17761777fn failWithStructInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) CompileError {
......@@ -1801,7 +1802,7 @@ fn failWithIntegerOverflow(sema: *Sema, block: *Block, src: LazySrcLoc, int_ty:
18011802 try sema.errNote(block, src, msg, "when computing vector element at index '{d}'", .{vector_index});
18021803 break :msg msg;
18031804 };
1804 return sema.failWithOwnedErrorMsg(block, msg);
1805 return sema.failWithOwnedErrorMsg(msg);
18051806 }
18061807 return sema.fail(block, src, "overflow of integer type '{}' with value '{}'", .{
18071808 int_ty.fmt(sema.mod), val.fmtValue(int_ty, sema.mod),
......@@ -1823,7 +1824,7 @@ fn failWithInvalidComptimeFieldStore(sema: *Sema, block: *Block, init_src: LazyS
18231824 try sema.errNote(block, default_value_src, msg, "default value set here", .{});
18241825 break :msg msg;
18251826 };
1826 return sema.failWithOwnedErrorMsg(block, msg);
1827 return sema.failWithOwnedErrorMsg(msg);
18271828}
18281829
18291830/// We don't return a pointer to the new error note because the pointer
......@@ -1878,10 +1879,10 @@ pub fn fail(
18781879 args: anytype,
18791880) CompileError {
18801881 const err_msg = try sema.errMsg(block, src, format, args);
1881 return sema.failWithOwnedErrorMsg(block, err_msg);
1882 return sema.failWithOwnedErrorMsg(err_msg);
18821883}
18831884
1884fn failWithOwnedErrorMsg(sema: *Sema, block: *Block, err_msg: *Module.ErrorMsg) CompileError {
1885fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError {
18851886 @setCold(true);
18861887
18871888 if (crash_report.is_enabled and sema.mod.comp.debug_compile_errors) {
......@@ -1894,7 +1895,7 @@ fn failWithOwnedErrorMsg(sema: *Sema, block: *Block, err_msg: *Module.ErrorMsg)
18941895 }
18951896
18961897 const mod = sema.mod;
1897 if (block.inlining) |some| some.err = err_msg;
1898 sema.err = err_msg;
18981899
18991900 {
19001901 errdefer err_msg.destroy(mod.gpa);
......@@ -2591,7 +2592,7 @@ fn zirEnumDecl(
25912592 try sema.errNote(block, other_tag_src, msg, "other field here", .{});
25922593 break :msg msg;
25932594 };
2594 return sema.failWithOwnedErrorMsg(block, msg);
2595 return sema.failWithOwnedErrorMsg(msg);
25952596 }
25962597
25972598 if (has_tag_value) {
......@@ -2886,7 +2887,7 @@ fn ensureResultUsed(
28862887 try sema.errNote(block, src, msg, "consider using `try`, `catch`, or `if`", .{});
28872888 break :msg msg;
28882889 };
2889 return sema.failWithOwnedErrorMsg(block, msg);
2890 return sema.failWithOwnedErrorMsg(msg);
28902891 },
28912892 else => {
28922893 const msg = msg: {
......@@ -2896,7 +2897,7 @@ fn ensureResultUsed(
28962897 try sema.errNote(block, src, msg, "this error can be suppressed by assigning the value to '_'", .{});
28972898 break :msg msg;
28982899 };
2899 return sema.failWithOwnedErrorMsg(block, msg);
2900 return sema.failWithOwnedErrorMsg(msg);
29002901 },
29012902 }
29022903}
......@@ -2917,7 +2918,7 @@ fn zirEnsureResultNonError(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Com
29172918 try sema.errNote(block, src, msg, "consider using `try`, `catch`, or `if`", .{});
29182919 break :msg msg;
29192920 };
2920 return sema.failWithOwnedErrorMsg(block, msg);
2921 return sema.failWithOwnedErrorMsg(msg);
29212922 },
29222923 else => return,
29232924 }
......@@ -2957,7 +2958,7 @@ fn zirIndexablePtrLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileE
29572958 );
29582959 break :msg msg;
29592960 };
2960 return sema.failWithOwnedErrorMsg(block, msg);
2961 return sema.failWithOwnedErrorMsg(msg);
29612962 }
29622963
29632964 return sema.fieldVal(block, src, object, "len", src);
......@@ -3615,7 +3616,7 @@ fn validateUnionInit(
36153616 try sema.addDeclaredHereNote(msg, union_ty);
36163617 break :msg msg;
36173618 };
3618 return sema.failWithOwnedErrorMsg(block, msg);
3619 return sema.failWithOwnedErrorMsg(msg);
36193620 }
36203621
36213622 if ((is_comptime or block.is_comptime) and
......@@ -3747,7 +3748,7 @@ fn validateStructInit(
37473748 try sema.errNote(block, other_field_src, msg, "other field here", .{});
37483749 break :msg msg;
37493750 };
3750 return sema.failWithOwnedErrorMsg(block, msg);
3751 return sema.failWithOwnedErrorMsg(msg);
37513752 }
37523753 found_fields[field_index] = field_ptr;
37533754 }
......@@ -3808,7 +3809,7 @@ fn validateStructInit(
38083809 .{fqn},
38093810 );
38103811 }
3811 return sema.failWithOwnedErrorMsg(block, msg);
3812 return sema.failWithOwnedErrorMsg(msg);
38123813 }
38133814
38143815 return;
......@@ -3938,7 +3939,7 @@ fn validateStructInit(
39383939 .{fqn},
39393940 );
39403941 }
3941 return sema.failWithOwnedErrorMsg(block, msg);
3942 return sema.failWithOwnedErrorMsg(msg);
39423943 }
39433944
39443945 if (struct_is_comptime) {
......@@ -4000,7 +4001,7 @@ fn zirValidateArrayInit(
40004001 }
40014002
40024003 if (root_msg) |msg| {
4003 return sema.failWithOwnedErrorMsg(block, msg);
4004 return sema.failWithOwnedErrorMsg(msg);
40044005 }
40054006 }
40064007
......@@ -4180,7 +4181,7 @@ fn zirValidateDeref(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErr
41804181 try sema.explainWhyTypeIsComptime(block, src, msg, src.toSrcLoc(src_decl), elem_ty);
41814182 break :msg msg;
41824183 };
4183 return sema.failWithOwnedErrorMsg(block, msg);
4184 return sema.failWithOwnedErrorMsg(msg);
41844185 }
41854186}
41864187
......@@ -4206,7 +4207,7 @@ fn failWithBadMemberAccess(
42064207 try sema.addDeclaredHereNote(msg, agg_ty);
42074208 break :msg msg;
42084209 };
4209 return sema.failWithOwnedErrorMsg(block, msg);
4210 return sema.failWithOwnedErrorMsg(msg);
42104211}
42114212
42124213fn failWithBadStructFieldAccess(
......@@ -4232,7 +4233,7 @@ fn failWithBadStructFieldAccess(
42324233 try sema.mod.errNoteNonLazy(struct_obj.srcLoc(sema.mod), msg, "struct declared here", .{});
42334234 break :msg msg;
42344235 };
4235 return sema.failWithOwnedErrorMsg(block, msg);
4236 return sema.failWithOwnedErrorMsg(msg);
42364237}
42374238
42384239fn failWithBadUnionFieldAccess(
......@@ -4258,7 +4259,7 @@ fn failWithBadUnionFieldAccess(
42584259 try sema.mod.errNoteNonLazy(union_obj.srcLoc(sema.mod), msg, "union declared here", .{});
42594260 break :msg msg;
42604261 };
4261 return sema.failWithOwnedErrorMsg(block, msg);
4262 return sema.failWithOwnedErrorMsg(msg);
42624263}
42634264
42644265fn addDeclaredHereNote(sema: *Sema, parent: *Module.ErrorMsg, decl_ty: Type) !void {
......@@ -4747,7 +4748,7 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr
47474748 @import("clang.zig").Stage2ErrorMsg.delete(c_import_res.errors.ptr, c_import_res.errors.len);
47484749 break :msg msg;
47494750 };
4750 return sema.failWithOwnedErrorMsg(parent_block, msg);
4751 return sema.failWithOwnedErrorMsg(msg);
47514752 }
47524753 const c_import_pkg = Package.create(
47534754 sema.gpa,
......@@ -4921,7 +4922,7 @@ fn analyzeBlockBody(
49214922
49224923 break :msg msg;
49234924 };
4924 return sema.failWithOwnedErrorMsg(child_block, msg);
4925 return sema.failWithOwnedErrorMsg(msg);
49254926 }
49264927 const ty_inst = try sema.addType(resolved_ty);
49274928 try sema.air_extra.ensureUnusedCapacity(gpa, @typeInfo(Air.Block).Struct.fields.len +
......@@ -5060,7 +5061,7 @@ pub fn analyzeExport(
50605061 try sema.addDeclaredHereNote(msg, exported_decl.ty);
50615062 break :msg msg;
50625063 };
5063 return sema.failWithOwnedErrorMsg(block, msg);
5064 return sema.failWithOwnedErrorMsg(msg);
50645065 }
50655066
50665067 const gpa = mod.gpa;
......@@ -5150,7 +5151,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.Inst
51505151 try sema.errNote(block, gop.value_ptr.src, msg, "other instance here", .{});
51515152 break :msg msg;
51525153 };
5153 return sema.failWithOwnedErrorMsg(block, msg);
5154 return sema.failWithOwnedErrorMsg(msg);
51545155 }
51555156 gop.value_ptr.* = .{ .alignment = alignment, .src = src };
51565157}
......@@ -5413,7 +5414,7 @@ fn lookupInNamespace(
54135414 }
54145415 break :msg msg;
54155416 };
5416 return sema.failWithOwnedErrorMsg(block, msg);
5417 return sema.failWithOwnedErrorMsg(msg);
54175418 },
54185419 }
54195420 } else if (namespace.decls.getKeyAdapted(ident_name, Module.DeclAdapter{ .mod = mod })) |decl_index| {
......@@ -5872,9 +5873,8 @@ fn analyzeCall(
58725873 sema.analyzeBody(&child_block, fn_info.body) catch |err| switch (err) {
58735874 error.ComptimeReturn => break :result inlining.comptime_result,
58745875 error.AnalysisFail => {
5875 const err_msg = inlining.err orelse return err;
5876 const err_msg = sema.err orelse return err;
58765877 try sema.errNote(block, call_src, err_msg, "called from here", .{});
5877 if (block.inlining) |some| some.err = err_msg;
58785878 return err;
58795879 },
58805880 else => |e| return e,
......@@ -6802,7 +6802,7 @@ fn zirMergeErrorSets(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr
68026802 try sema.errNote(block, src, msg, "'||' merges error sets; 'or' performs boolean OR", .{});
68036803 break :msg msg;
68046804 };
6805 return sema.failWithOwnedErrorMsg(block, msg);
6805 return sema.failWithOwnedErrorMsg(msg);
68066806 }
68076807 const lhs_ty = try sema.analyzeAsType(block, lhs_src, lhs);
68086808 const rhs_ty = try sema.analyzeAsType(block, rhs_src, rhs);
......@@ -6927,7 +6927,7 @@ fn zirIntToEnum(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A
69276927 try sema.addDeclaredHereNote(msg, dest_ty);
69286928 break :msg msg;
69296929 };
6930 return sema.failWithOwnedErrorMsg(block, msg);
6930 return sema.failWithOwnedErrorMsg(msg);
69316931 }
69326932 return sema.addConstant(dest_ty, int_val);
69336933 }
......@@ -7632,7 +7632,7 @@ fn funcCommon(
76327632 try sema.addDeclaredHereNote(msg, bare_return_type);
76337633 break :msg msg;
76347634 };
7635 return sema.failWithOwnedErrorMsg(block, msg);
7635 return sema.failWithOwnedErrorMsg(msg);
76367636 }
76377637 if (!Type.fnCallingConventionAllowsZigTypes(cc_workaround) and !sema.validateExternType(return_type, .ret_ty)) {
76387638 const msg = msg: {
......@@ -7647,7 +7647,7 @@ fn funcCommon(
76477647 try sema.addDeclaredHereNote(msg, return_type);
76487648 break :msg msg;
76497649 };
7650 return sema.failWithOwnedErrorMsg(block, msg);
7650 return sema.failWithOwnedErrorMsg(msg);
76517651 }
76527652
76537653 const arch = sema.mod.getTarget().cpu.arch;
......@@ -7812,7 +7812,7 @@ fn analyzeParameter(
78127812 try sema.errNote(block, param_src, msg, "function is generic because of this parameter", .{});
78137813 break :msg msg;
78147814 };
7815 return sema.failWithOwnedErrorMsg(block, msg);
7815 return sema.failWithOwnedErrorMsg(msg);
78167816 }
78177817 if (this_generic and !Type.fnCallingConventionAllowsZigTypes(cc)) {
78187818 return sema.fail(block, param_src, "generic parameters not allowed in function with calling convention '{s}'", .{@tagName(cc)});
......@@ -7828,7 +7828,7 @@ fn analyzeParameter(
78287828 try sema.addDeclaredHereNote(msg, param.ty);
78297829 break :msg msg;
78307830 };
7831 return sema.failWithOwnedErrorMsg(block, msg);
7831 return sema.failWithOwnedErrorMsg(msg);
78327832 }
78337833 if (!Type.fnCallingConventionAllowsZigTypes(cc) and !sema.validateExternType(param.ty, .param_ty)) {
78347834 const msg = msg: {
......@@ -7843,7 +7843,7 @@ fn analyzeParameter(
78437843 try sema.addDeclaredHereNote(msg, param.ty);
78447844 break :msg msg;
78457845 };
7846 return sema.failWithOwnedErrorMsg(block, msg);
7846 return sema.failWithOwnedErrorMsg(msg);
78477847 }
78487848 if (requires_comptime and !param.is_comptime) {
78497849 const msg = msg: {
......@@ -7855,7 +7855,7 @@ fn analyzeParameter(
78557855 try sema.addDeclaredHereNote(msg, param.ty);
78567856 break :msg msg;
78577857 };
7858 return sema.failWithOwnedErrorMsg(block, msg);
7858 return sema.failWithOwnedErrorMsg(msg);
78597859 }
78607860}
78617861
......@@ -8318,7 +8318,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
83188318
83198319 break :msg msg;
83208320 };
8321 return sema.failWithOwnedErrorMsg(block, msg);
8321 return sema.failWithOwnedErrorMsg(msg);
83228322 },
83238323
83248324 .Pointer => {
......@@ -8333,7 +8333,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
83338333
83348334 break :msg msg;
83358335 };
8336 return sema.failWithOwnedErrorMsg(block, msg);
8336 return sema.failWithOwnedErrorMsg(msg);
83378337 },
83388338 .Struct, .Union => if (dest_ty.containerLayout() == .Auto) {
83398339 const container = switch (dest_ty.zigTypeTag()) {
......@@ -8383,7 +8383,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
83838383
83848384 break :msg msg;
83858385 };
8386 return sema.failWithOwnedErrorMsg(block, msg);
8386 return sema.failWithOwnedErrorMsg(msg);
83878387 },
83888388 .Pointer => {
83898389 const msg = msg: {
......@@ -8397,7 +8397,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
83978397
83988398 break :msg msg;
83998399 };
8400 return sema.failWithOwnedErrorMsg(block, msg);
8400 return sema.failWithOwnedErrorMsg(msg);
84018401 },
84028402 .Struct, .Union => if (operand_ty.containerLayout() == .Auto) {
84038403 const container = switch (operand_ty.zigTypeTag()) {
......@@ -8663,7 +8663,7 @@ fn zirSwitchCapture(
86638663 try sema.errNote(block, item_src, msg, "type '{}' here", .{field.ty.fmt(sema.mod)});
86648664 break :msg msg;
86658665 };
8666 return sema.failWithOwnedErrorMsg(block, msg);
8666 return sema.failWithOwnedErrorMsg(msg);
86678667 }
86688668 }
86698669
......@@ -8786,7 +8786,7 @@ fn zirSwitchCond(
87868786 }
87878787 break :msg msg;
87888788 };
8789 return sema.failWithOwnedErrorMsg(block, msg);
8789 return sema.failWithOwnedErrorMsg(msg);
87908790 };
87918791 return sema.unionToTag(block, enum_ty, operand, src);
87928792 },
......@@ -8875,7 +8875,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
88758875 );
88768876 break :msg msg;
88778877 };
8878 return sema.failWithOwnedErrorMsg(block, msg);
8878 return sema.failWithOwnedErrorMsg(msg);
88798879 }
88808880
88818881 const target = sema.mod.getTarget();
......@@ -8979,7 +8979,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
89798979 );
89808980 break :msg msg;
89818981 };
8982 return sema.failWithOwnedErrorMsg(block, msg);
8982 return sema.failWithOwnedErrorMsg(msg);
89838983 } else if (special_prong == .none and operand_ty.isNonexhaustiveEnum() and !union_originally) {
89848984 return sema.fail(
89858985 block,
......@@ -9079,7 +9079,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
90799079 if (maybe_msg) |msg| {
90809080 maybe_msg = null;
90819081 try sema.addDeclaredHereNote(msg, operand_ty);
9082 return sema.failWithOwnedErrorMsg(block, msg);
9082 return sema.failWithOwnedErrorMsg(msg);
90839083 }
90849084
90859085 if (special_prong == .@"else" and seen_errors.count() == operand_ty.errorSetNames().len) {
......@@ -9888,7 +9888,7 @@ fn validateSwitchDupe(
98889888 );
98899889 break :msg msg;
98909890 };
9891 return sema.failWithOwnedErrorMsg(block, msg);
9891 return sema.failWithOwnedErrorMsg(msg);
98929892}
98939893
98949894fn validateSwitchItemBool(
......@@ -9958,7 +9958,7 @@ fn validateSwitchNoRange(
99589958 );
99599959 break :msg msg;
99609960 };
9961 return sema.failWithOwnedErrorMsg(block, msg);
9961 return sema.failWithOwnedErrorMsg(msg);
99629962}
99639963
99649964fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {
......@@ -12882,7 +12882,7 @@ fn analyzeCmpUnionTag(
1288212882 try sema.mod.errNoteNonLazy(union_ty.declSrcLoc(sema.mod), msg, "union '{}' is not a tagged union", .{union_ty.fmt(sema.mod)});
1288312883 break :msg msg;
1288412884 };
12885 return sema.failWithOwnedErrorMsg(block, msg);
12885 return sema.failWithOwnedErrorMsg(msg);
1288612886 };
1288712887 // Coerce both the union and the tag to the union's tag type, and then execute the
1288812888 // enum comparison codepath.
......@@ -13170,7 +13170,7 @@ fn zirClosureGet(
1317013170 // TODO add "declared here" note
1317113171 break :msg msg;
1317213172 };
13173 return sema.failWithOwnedErrorMsg(block, msg);
13173 return sema.failWithOwnedErrorMsg(msg);
1317413174 }
1317513175
1317613176 return sema.addConstant(tv.ty, tv.val);
......@@ -14907,7 +14907,7 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1490714907 try sema.addDeclaredHereNote(msg, elem_ty);
1490814908 break :msg msg;
1490914909 };
14910 return sema.failWithOwnedErrorMsg(block, msg);
14910 return sema.failWithOwnedErrorMsg(msg);
1491114911 }
1491214912 if (elem_ty.zigTypeTag() == .Opaque) {
1491314913 return sema.fail(block, elem_ty_src, "C pointers cannot point to opaque types", .{});
......@@ -15078,7 +15078,7 @@ fn zirStructInit(
1507815078 try sema.errNote(block, other_field_src, msg, "other field here", .{});
1507915079 break :msg msg;
1508015080 };
15081 return sema.failWithOwnedErrorMsg(block, msg);
15081 return sema.failWithOwnedErrorMsg(msg);
1508215082 }
1508315083 found_fields[field_index] = item.data.field_type;
1508415084 field_inits[field_index] = try sema.resolveInst(item.data.init);
......@@ -15219,7 +15219,7 @@ fn finishStructInit(
1521915219 .{fqn},
1522015220 );
1522115221 }
15222 return sema.failWithOwnedErrorMsg(block, msg);
15222 return sema.failWithOwnedErrorMsg(msg);
1522315223 }
1522415224
1522515225 const is_comptime = for (field_inits) |field_init| {
......@@ -15294,7 +15294,7 @@ fn zirStructInitAnon(
1529415294 try sema.errNote(block, prev_source, msg, "other field here", .{});
1529515295 break :msg msg;
1529615296 };
15297 return sema.failWithOwnedErrorMsg(block, msg);
15297 return sema.failWithOwnedErrorMsg(msg);
1529815298 }
1529915299 gop.value_ptr.* = @intCast(u32, i);
1530015300
......@@ -15310,7 +15310,7 @@ fn zirStructInitAnon(
1531015310 try sema.addDeclaredHereNote(msg, types[i]);
1531115311 break :msg msg;
1531215312 };
15313 return sema.failWithOwnedErrorMsg(block, msg);
15313 return sema.failWithOwnedErrorMsg(msg);
1531415314 }
1531515315 const init_src = src; // TODO better source location
1531615316 if (try sema.resolveMaybeUndefVal(block, init_src, init)) |init_val| {
......@@ -15508,7 +15508,7 @@ fn zirArrayInitAnon(
1550815508 try sema.addDeclaredHereNote(msg, types[i]);
1550915509 break :msg msg;
1551015510 };
15511 return sema.failWithOwnedErrorMsg(block, msg);
15511 return sema.failWithOwnedErrorMsg(msg);
1551215512 }
1551315513 if (try sema.resolveMaybeUndefVal(block, operand_src, elem)) |val| {
1551415514 values[i] = val;
......@@ -15822,7 +15822,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1582215822 try sema.addDeclaredHereNote(msg, operand_ty);
1582315823 break :msg msg;
1582415824 };
15825 return sema.failWithOwnedErrorMsg(block, msg);
15825 return sema.failWithOwnedErrorMsg(msg);
1582615826 },
1582715827 else => return sema.fail(block, operand_src, "expected enum or union; found '{}'", .{
1582815828 operand_ty.fmt(mod),
......@@ -15841,7 +15841,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1584115841 try mod.errNoteNonLazy(enum_decl.srcLoc(), msg, "declared here", .{});
1584215842 break :msg msg;
1584315843 };
15844 return sema.failWithOwnedErrorMsg(block, msg);
15844 return sema.failWithOwnedErrorMsg(msg);
1584515845 };
1584615846 const field_name = enum_ty.enumFieldName(field_index);
1584715847 return sema.addStrLit(block, field_name);
......@@ -15991,7 +15991,7 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I
1599115991 try sema.addDeclaredHereNote(msg, elem_ty);
1599215992 break :msg msg;
1599315993 };
15994 return sema.failWithOwnedErrorMsg(block, msg);
15994 return sema.failWithOwnedErrorMsg(msg);
1599515995 }
1599615996 if (elem_ty.zigTypeTag() == .Opaque) {
1599715997 return sema.fail(block, src, "C pointers cannot point to opaque types", .{});
......@@ -16394,7 +16394,7 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I
1639416394 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);
1639516395 break :msg msg;
1639616396 };
16397 return sema.failWithOwnedErrorMsg(block, msg);
16397 return sema.failWithOwnedErrorMsg(msg);
1639816398 }
1639916399 }
1640016400
......@@ -16428,7 +16428,7 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I
1642816428 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);
1642916429 break :msg msg;
1643016430 };
16431 return sema.failWithOwnedErrorMsg(block, msg);
16431 return sema.failWithOwnedErrorMsg(msg);
1643216432 }
1643316433 }
1643416434
......@@ -16898,7 +16898,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat
1689816898 try sema.addDeclaredHereNote(msg, dest_ty);
1689916899 break :msg msg;
1690016900 };
16901 return sema.failWithOwnedErrorMsg(block, msg);
16901 return sema.failWithOwnedErrorMsg(msg);
1690216902 }
1690316903
1690416904 if (maybe_operand_val) |val| {
......@@ -16916,7 +16916,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat
1691616916 try sema.addDeclaredHereNote(msg, dest_ty);
1691716917 break :msg msg;
1691816918 };
16919 return sema.failWithOwnedErrorMsg(block, msg);
16919 return sema.failWithOwnedErrorMsg(msg);
1692016920 }
1692116921 }
1692216922
......@@ -17054,7 +17054,7 @@ fn zirTruncate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1705417054 });
1705517055 break :msg msg;
1705617056 };
17057 return sema.failWithOwnedErrorMsg(block, msg);
17057 return sema.failWithOwnedErrorMsg(msg);
1705817058 }
1705917059 }
1706017060
......@@ -17345,7 +17345,7 @@ fn bitOffsetOf(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!u6
1734517345 try sema.addDeclaredHereNote(msg, ty);
1734617346 break :msg msg;
1734717347 };
17348 return sema.failWithOwnedErrorMsg(block, msg);
17348 return sema.failWithOwnedErrorMsg(msg);
1734917349 },
1735017350 }
1735117351
......@@ -17449,7 +17449,7 @@ fn checkPtrOperand(
1744917449
1745017450 break :msg msg;
1745117451 };
17452 return sema.failWithOwnedErrorMsg(block, msg);
17452 return sema.failWithOwnedErrorMsg(msg);
1745317453 },
1745417454 .Optional => if (ty.isPtrLikeOptional()) return,
1745517455 else => {},
......@@ -17479,7 +17479,7 @@ fn checkPtrType(
1747917479
1748017480 break :msg msg;
1748117481 };
17482 return sema.failWithOwnedErrorMsg(block, msg);
17482 return sema.failWithOwnedErrorMsg(msg);
1748317483 },
1748417484 .Optional => if (ty.isPtrLikeOptional()) return,
1748517485 else => {},
......@@ -17615,7 +17615,7 @@ fn checkComptimeVarStore(
1761517615 try sema.errNote(block, cond_src, msg, "runtime condition here", .{});
1761617616 break :msg msg;
1761717617 };
17618 return sema.failWithOwnedErrorMsg(block, msg);
17618 return sema.failWithOwnedErrorMsg(msg);
1761917619 }
1762017620 if (block.runtime_loop) |loop_src| {
1762117621 const msg = msg: {
......@@ -17624,7 +17624,7 @@ fn checkComptimeVarStore(
1762417624 try sema.errNote(block, loop_src, msg, "non-inline loop here", .{});
1762517625 break :msg msg;
1762617626 };
17627 return sema.failWithOwnedErrorMsg(block, msg);
17627 return sema.failWithOwnedErrorMsg(msg);
1762817628 }
1762917629 unreachable;
1763017630 }
......@@ -17761,7 +17761,7 @@ fn checkVectorizableBinaryOperands(
1776117761 try sema.errNote(block, rhs_src, msg, "length {d} here", .{rhs_len});
1776217762 break :msg msg;
1776317763 };
17764 return sema.failWithOwnedErrorMsg(block, msg);
17764 return sema.failWithOwnedErrorMsg(msg);
1776517765 }
1776617766 } else {
1776717767 const msg = msg: {
......@@ -17778,7 +17778,7 @@ fn checkVectorizableBinaryOperands(
1777817778 }
1777917779 break :msg msg;
1778017780 };
17781 return sema.failWithOwnedErrorMsg(block, msg);
17781 return sema.failWithOwnedErrorMsg(msg);
1778217782 }
1778317783}
1778417784
......@@ -18178,7 +18178,7 @@ fn analyzeShuffle(
1817818178
1817918179 break :msg msg;
1818018180 };
18181 return sema.failWithOwnedErrorMsg(block, msg);
18181 return sema.failWithOwnedErrorMsg(msg);
1818218182 }
1818318183 }
1818418184
......@@ -18774,7 +18774,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr
1877418774 try sema.addDeclaredHereNote(msg, struct_ty);
1877518775 break :msg msg;
1877618776 };
18777 return sema.failWithOwnedErrorMsg(block, msg);
18777 return sema.failWithOwnedErrorMsg(msg);
1877818778 }
1877918779 return sema.addConstant(result_ptr, payload.data.container_ptr);
1878018780 }
......@@ -19574,7 +19574,7 @@ fn requireRuntimeBlock(sema: *Sema, block: *Block, src: LazySrcLoc, runtime_src:
1957419574 }
1957519575 break :msg msg;
1957619576 };
19577 return sema.failWithOwnedErrorMsg(block, msg);
19577 return sema.failWithOwnedErrorMsg(msg);
1957819578 }
1957919579 try sema.requireFunctionBlock(block, src);
1958019580}
......@@ -19603,7 +19603,7 @@ fn validateVarType(
1960319603
1960419604 break :msg msg;
1960519605 };
19606 return sema.failWithOwnedErrorMsg(block, msg);
19606 return sema.failWithOwnedErrorMsg(msg);
1960719607}
1960819608
1960919609fn validateRunTimeType(
......@@ -20305,7 +20305,7 @@ fn emitBackwardBranch(sema: *Sema, block: *Block, src: LazySrcLoc) !void {
2030520305 "use @setEvalBranchQuota() to raise the branch limit from {d}",
2030620306 .{sema.branch_quota},
2030720307 );
20308 return sema.failWithOwnedErrorMsg(block, msg);
20308 return sema.failWithOwnedErrorMsg(msg);
2030920309 }
2031020310}
2031120311
......@@ -20413,7 +20413,7 @@ fn fieldVal(
2041320413 try sema.addDeclaredHereNote(msg, child_type);
2041420414 break :msg msg;
2041520415 };
20416 return sema.failWithOwnedErrorMsg(block, msg);
20416 return sema.failWithOwnedErrorMsg(msg);
2041720417 } else (try sema.mod.getErrorValue(field_name)).key;
2041820418
2041920419 return sema.addConstant(
......@@ -20468,7 +20468,7 @@ fn fieldVal(
2046820468 if (child_type.zigTypeTag() == .Array) try sema.errNote(block, src, msg, "array values have 'len' member", .{});
2046920469 break :msg msg;
2047020470 };
20471 return sema.failWithOwnedErrorMsg(block, msg);
20471 return sema.failWithOwnedErrorMsg(msg);
2047220472 },
2047320473 }
2047420474 },
......@@ -20806,7 +20806,7 @@ fn fieldCallBind(
2080620806 try sema.addDeclaredHereNote(msg, concrete_ty);
2080720807 break :msg msg;
2080820808 };
20809 return sema.failWithOwnedErrorMsg(block, msg);
20809 return sema.failWithOwnedErrorMsg(msg);
2081020810}
2081120811
2081220812fn finishFieldCallBind(
......@@ -20861,7 +20861,7 @@ fn namespaceLookup(
2086120861 try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{});
2086220862 break :msg msg;
2086320863 };
20864 return sema.failWithOwnedErrorMsg(block, msg);
20864 return sema.failWithOwnedErrorMsg(msg);
2086520865 }
2086620866 return decl_index;
2086720867 }
......@@ -21194,7 +21194,7 @@ fn unionFieldPtr(
2119421194 try sema.addDeclaredHereNote(msg, union_ty);
2119521195 break :msg msg;
2119621196 };
21197 return sema.failWithOwnedErrorMsg(block, msg);
21197 return sema.failWithOwnedErrorMsg(msg);
2119821198 }
2119921199 },
2120021200 .Packed, .Extern => {},
......@@ -21264,7 +21264,7 @@ fn unionFieldVal(
2126421264 try sema.addDeclaredHereNote(msg, union_ty);
2126521265 break :msg msg;
2126621266 };
21267 return sema.failWithOwnedErrorMsg(block, msg);
21267 return sema.failWithOwnedErrorMsg(msg);
2126821268 }
2126921269 },
2127021270 .Packed, .Extern => {
......@@ -21438,7 +21438,7 @@ fn validateRuntimeElemAccess(
2143821438
2143921439 break :msg msg;
2144021440 };
21441 return sema.failWithOwnedErrorMsg(block, msg);
21441 return sema.failWithOwnedErrorMsg(msg);
2144221442 }
2144321443}
2144421444
......@@ -22214,7 +22214,7 @@ fn coerceExtra(
2221422214 try sema.addDeclaredHereNote(msg, dest_ty);
2221522215 break :msg msg;
2221622216 };
22217 return sema.failWithOwnedErrorMsg(block, msg);
22217 return sema.failWithOwnedErrorMsg(msg);
2221822218 };
2221922219 return sema.addConstant(
2222022220 dest_ty,
......@@ -22342,7 +22342,7 @@ fn coerceExtra(
2234222342 try sema.mod.errNoteNonLazy(ret_ty_src.toSrcLoc(src_decl), msg, "'noreturn' declared here", .{});
2234322343 break :msg msg;
2234422344 };
22345 return sema.failWithOwnedErrorMsg(block, msg);
22345 return sema.failWithOwnedErrorMsg(msg);
2234622346 }
2234722347
2234822348 const msg = msg: {
......@@ -22383,7 +22383,7 @@ fn coerceExtra(
2238322383
2238422384 break :msg msg;
2238522385 };
22386 return sema.failWithOwnedErrorMsg(block, msg);
22386 return sema.failWithOwnedErrorMsg(msg);
2238722387}
2238822388
2238922389const InMemoryCoercionResult = union(enum) {
......@@ -24448,7 +24448,7 @@ fn coerceEnumToUnion(
2444824448 try sema.addDeclaredHereNote(msg, union_ty);
2444924449 break :msg msg;
2445024450 };
24451 return sema.failWithOwnedErrorMsg(block, msg);
24451 return sema.failWithOwnedErrorMsg(msg);
2445224452 };
2445324453
2445424454 const enum_tag = try sema.coerce(block, tag_ty, inst, inst_src);
......@@ -24463,7 +24463,7 @@ fn coerceEnumToUnion(
2446324463 try sema.addDeclaredHereNote(msg, union_ty);
2446424464 break :msg msg;
2446524465 };
24466 return sema.failWithOwnedErrorMsg(block, msg);
24466 return sema.failWithOwnedErrorMsg(msg);
2446724467 };
2446824468 const field = union_obj.fields.values()[field_index];
2446924469 const field_ty = try sema.resolveTypeFields(block, inst_src, field.ty);
......@@ -24479,7 +24479,7 @@ fn coerceEnumToUnion(
2447924479 try sema.addDeclaredHereNote(msg, union_ty);
2448024480 break :msg msg;
2448124481 };
24482 return sema.failWithOwnedErrorMsg(block, msg);
24482 return sema.failWithOwnedErrorMsg(msg);
2448324483 };
2448424484
2448524485 return sema.addConstant(union_ty, try Value.Tag.@"union".create(sema.arena, .{
......@@ -24499,7 +24499,7 @@ fn coerceEnumToUnion(
2449924499 try sema.addDeclaredHereNote(msg, tag_ty);
2450024500 break :msg msg;
2450124501 };
24502 return sema.failWithOwnedErrorMsg(block, msg);
24502 return sema.failWithOwnedErrorMsg(msg);
2450324503 }
2450424504
2450524505 // If the union has all fields 0 bits, the union value is just the enum value.
......@@ -24528,7 +24528,7 @@ fn coerceEnumToUnion(
2452824528 try sema.addDeclaredHereNote(msg, union_ty);
2452924529 break :msg msg;
2453024530 };
24531 return sema.failWithOwnedErrorMsg(block, msg);
24531 return sema.failWithOwnedErrorMsg(msg);
2453224532}
2453324533
2453424534fn coerceAnonStructToUnion(
......@@ -24557,7 +24557,7 @@ fn coerceAnonStructToUnion(
2455724557 try sema.addDeclaredHereNote(msg, union_ty);
2455824558 break :msg msg;
2455924559 };
24560 return sema.failWithOwnedErrorMsg(block, msg);
24560 return sema.failWithOwnedErrorMsg(msg);
2456124561 }
2456224562
2456324563 const field_name = anon_struct.names[0];
......@@ -24617,7 +24617,7 @@ fn coerceArrayLike(
2461724617 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});
2461824618 break :msg msg;
2461924619 };
24620 return sema.failWithOwnedErrorMsg(block, msg);
24620 return sema.failWithOwnedErrorMsg(msg);
2462124621 }
2462224622
2462324623 const dest_elem_ty = dest_ty.childType();
......@@ -24689,7 +24689,7 @@ fn coerceTupleToArray(
2468924689 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});
2469024690 break :msg msg;
2469124691 };
24692 return sema.failWithOwnedErrorMsg(block, msg);
24692 return sema.failWithOwnedErrorMsg(msg);
2469324693 }
2469424694
2469524695 const dest_elems = try sema.usizeCast(block, dest_ty_src, dest_ty.arrayLenIncludingSentinel());
......@@ -24852,7 +24852,7 @@ fn coerceTupleToStruct(
2485224852
2485324853 if (root_msg) |msg| {
2485424854 try sema.addDeclaredHereNote(msg, struct_ty);
24855 return sema.failWithOwnedErrorMsg(block, msg);
24855 return sema.failWithOwnedErrorMsg(msg);
2485624856 }
2485724857
2485824858 if (runtime_src) |rs| {
......@@ -24956,7 +24956,7 @@ fn coerceTupleToTuple(
2495624956
2495724957 if (root_msg) |msg| {
2495824958 try sema.addDeclaredHereNote(msg, tuple_ty);
24959 return sema.failWithOwnedErrorMsg(block, msg);
24959 return sema.failWithOwnedErrorMsg(msg);
2496024960 }
2496124961
2496224962 if (runtime_src) |rs| {
......@@ -25521,7 +25521,7 @@ fn analyzeSlice(
2552125521
2552225522 break :msg msg;
2552325523 };
25524 return sema.failWithOwnedErrorMsg(block, msg);
25524 return sema.failWithOwnedErrorMsg(msg);
2552525525 }
2552625526 }
2552725527 }
......@@ -26470,7 +26470,7 @@ fn resolvePeerTypes(
2647026470
2647126471 break :msg msg;
2647226472 };
26473 return sema.failWithOwnedErrorMsg(block, msg);
26473 return sema.failWithOwnedErrorMsg(msg);
2647426474 }
2647526475
2647626476 const chosen_ty = sema.typeOf(chosen);
......@@ -27068,7 +27068,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
2706827068 try sema.errNote(&block_scope, src, msg, "struct declared here", .{});
2706927069 break :msg msg;
2707027070 };
27071 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27071 return sema.failWithOwnedErrorMsg(msg);
2707227072 }
2707327073 gop.value_ptr.* = .{
2707427074 .ty = Type.initTag(.noreturn),
......@@ -27127,7 +27127,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
2712727127 try sema.addDeclaredHereNote(msg, field_ty);
2712827128 break :msg msg;
2712927129 };
27130 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27130 return sema.failWithOwnedErrorMsg(msg);
2713127131 }
2713227132 if (struct_obj.layout == .Extern and !sema.validateExternType(field.ty, .other)) {
2713327133 const msg = msg: {
......@@ -27141,7 +27141,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
2714127141 try sema.addDeclaredHereNote(msg, field.ty);
2714227142 break :msg msg;
2714327143 };
27144 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27144 return sema.failWithOwnedErrorMsg(msg);
2714527145 } else if (struct_obj.layout == .Packed and !(validatePackedType(field.ty))) {
2714627146 const msg = msg: {
2714727147 const tree = try sema.getAstTree(&block_scope);
......@@ -27154,7 +27154,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
2715427154 try sema.addDeclaredHereNote(msg, field.ty);
2715527155 break :msg msg;
2715627156 };
27157 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27157 return sema.failWithOwnedErrorMsg(msg);
2715827158 }
2715927159
2716027160 if (zir_field.align_body_len > 0) {
......@@ -27436,7 +27436,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
2743627436 try sema.errNote(&block_scope, src, msg, "union declared here", .{});
2743727437 break :msg msg;
2743827438 };
27439 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27439 return sema.failWithOwnedErrorMsg(msg);
2744027440 }
2744127441
2744227442 if (tag_ty_field_names) |*names| {
......@@ -27450,7 +27450,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
2745027450 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);
2745127451 break :msg msg;
2745227452 };
27453 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27453 return sema.failWithOwnedErrorMsg(msg);
2745427454 }
2745527455 }
2745627456
......@@ -27464,7 +27464,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
2746427464 try sema.addDeclaredHereNote(msg, field_ty);
2746527465 break :msg msg;
2746627466 };
27467 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27467 return sema.failWithOwnedErrorMsg(msg);
2746827468 }
2746927469 if (union_obj.layout == .Extern and !sema.validateExternType(field_ty, .union_field)) {
2747027470 const msg = msg: {
......@@ -27478,7 +27478,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
2747827478 try sema.addDeclaredHereNote(msg, field_ty);
2747927479 break :msg msg;
2748027480 };
27481 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27481 return sema.failWithOwnedErrorMsg(msg);
2748227482 } else if (union_obj.layout == .Packed and !(validatePackedType(field_ty))) {
2748327483 const msg = msg: {
2748427484 const tree = try sema.getAstTree(&block_scope);
......@@ -27491,7 +27491,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
2749127491 try sema.addDeclaredHereNote(msg, field_ty);
2749227492 break :msg msg;
2749327493 };
27494 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27494 return sema.failWithOwnedErrorMsg(msg);
2749527495 }
2749627496
2749727497 gop.value_ptr.* = .{
......@@ -27523,7 +27523,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
2752327523 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);
2752427524 break :msg msg;
2752527525 };
27526 return sema.failWithOwnedErrorMsg(&block_scope, msg);
27526 return sema.failWithOwnedErrorMsg(msg);
2752727527 }
2752827528 }
2752927529}