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) = .{},...@@ -74,6 +74,8 @@ types_to_resolve: std.ArrayListUnmanaged(Air.Inst.Ref) = .{},
74/// Sema must convert comptime control flow to runtime control flow, which means74/// Sema must convert comptime control flow to runtime control flow, which means
75/// breaking from a block.75/// breaking from a block.
76post_hoc_blocks: std.AutoHashMapUnmanaged(Air.Inst.Index, *LabeledBlock) = .{},76post_hoc_blocks: std.AutoHashMapUnmanaged(Air.Inst.Index, *LabeledBlock) = .{},
77/// Populated with the last compile error created.
78err: ?*Module.ErrorMsg = null,
7779
78const std = @import("std");80const std = @import("std");
79const mem = std.mem;81const mem = std.mem;
...@@ -174,7 +176,6 @@ pub const Block = struct {...@@ -174,7 +176,6 @@ pub const Block = struct {
174 pub const Inlining = struct {176 pub const Inlining = struct {
175 comptime_result: Air.Inst.Ref,177 comptime_result: Air.Inst.Ref,
176 merges: Merges,178 merges: Merges,
177 err: ?*Module.ErrorMsg = null,
178 };179 };
179180
180 pub const Merges = struct {181 pub const Merges = struct {
...@@ -1159,7 +1160,7 @@ fn analyzeBodyInner(...@@ -1159,7 +1160,7 @@ fn analyzeBodyInner(
1159 try sema.errNote(block, runtime_src, msg, "runtime control flow here", .{});1160 try sema.errNote(block, runtime_src, msg, "runtime control flow here", .{});
1160 break :msg msg;1161 break :msg msg;
1161 };1162 };
1162 return sema.failWithOwnedErrorMsg(block, msg);1163 return sema.failWithOwnedErrorMsg(msg);
1163 }1164 }
1164 }1165 }
1165 i += 1;1166 i += 1;
...@@ -1738,7 +1739,7 @@ fn failWithNeededComptime(sema: *Sema, block: *Block, src: LazySrcLoc, reason: [...@@ -1738,7 +1739,7 @@ fn failWithNeededComptime(sema: *Sema, block: *Block, src: LazySrcLoc, reason: [
1738 try sema.errNote(block, src, msg, "{s}", .{reason});1739 try sema.errNote(block, src, msg, "{s}", .{reason});
1739 break :msg msg;1740 break :msg msg;
1740 };1741 };
1741 return sema.failWithOwnedErrorMsg(block, msg);1742 return sema.failWithOwnedErrorMsg(msg);
1742}1743}
17431744
1744fn failWithUseOfUndef(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError {1745fn failWithUseOfUndef(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError {
...@@ -1770,7 +1771,7 @@ fn failWithArrayInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty...@@ -1770,7 +1771,7 @@ fn failWithArrayInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty
1770 }1771 }
1771 break :msg msg;1772 break :msg msg;
1772 };1773 };
1773 return sema.failWithOwnedErrorMsg(block, msg);1774 return sema.failWithOwnedErrorMsg(msg);
1774}1775}
17751776
1776fn failWithStructInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) CompileError {1777fn failWithStructInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) CompileError {
...@@ -1801,7 +1802,7 @@ fn failWithIntegerOverflow(sema: *Sema, block: *Block, src: LazySrcLoc, int_ty:...@@ -1801,7 +1802,7 @@ fn failWithIntegerOverflow(sema: *Sema, block: *Block, src: LazySrcLoc, int_ty:
1801 try sema.errNote(block, src, msg, "when computing vector element at index '{d}'", .{vector_index});1802 try sema.errNote(block, src, msg, "when computing vector element at index '{d}'", .{vector_index});
1802 break :msg msg;1803 break :msg msg;
1803 };1804 };
1804 return sema.failWithOwnedErrorMsg(block, msg);1805 return sema.failWithOwnedErrorMsg(msg);
1805 }1806 }
1806 return sema.fail(block, src, "overflow of integer type '{}' with value '{}'", .{1807 return sema.fail(block, src, "overflow of integer type '{}' with value '{}'", .{
1807 int_ty.fmt(sema.mod), val.fmtValue(int_ty, sema.mod),1808 int_ty.fmt(sema.mod), val.fmtValue(int_ty, sema.mod),
...@@ -1823,7 +1824,7 @@ fn failWithInvalidComptimeFieldStore(sema: *Sema, block: *Block, init_src: LazyS...@@ -1823,7 +1824,7 @@ fn failWithInvalidComptimeFieldStore(sema: *Sema, block: *Block, init_src: LazyS
1823 try sema.errNote(block, default_value_src, msg, "default value set here", .{});1824 try sema.errNote(block, default_value_src, msg, "default value set here", .{});
1824 break :msg msg;1825 break :msg msg;
1825 };1826 };
1826 return sema.failWithOwnedErrorMsg(block, msg);1827 return sema.failWithOwnedErrorMsg(msg);
1827}1828}
18281829
1829/// We don't return a pointer to the new error note because the pointer1830/// We don't return a pointer to the new error note because the pointer
...@@ -1878,10 +1879,10 @@ pub fn fail(...@@ -1878,10 +1879,10 @@ pub fn fail(
1878 args: anytype,1879 args: anytype,
1879) CompileError {1880) CompileError {
1880 const err_msg = try sema.errMsg(block, src, format, args);1881 const err_msg = try sema.errMsg(block, src, format, args);
1881 return sema.failWithOwnedErrorMsg(block, err_msg);1882 return sema.failWithOwnedErrorMsg(err_msg);
1882}1883}
18831884
1884fn failWithOwnedErrorMsg(sema: *Sema, block: *Block, err_msg: *Module.ErrorMsg) CompileError {1885fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError {
1885 @setCold(true);1886 @setCold(true);
18861887
1887 if (crash_report.is_enabled and sema.mod.comp.debug_compile_errors) {1888 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)...@@ -1894,7 +1895,7 @@ fn failWithOwnedErrorMsg(sema: *Sema, block: *Block, err_msg: *Module.ErrorMsg)
1894 }1895 }
18951896
1896 const mod = sema.mod;1897 const mod = sema.mod;
1897 if (block.inlining) |some| some.err = err_msg;1898 sema.err = err_msg;
18981899
1899 {1900 {
1900 errdefer err_msg.destroy(mod.gpa);1901 errdefer err_msg.destroy(mod.gpa);
...@@ -2591,7 +2592,7 @@ fn zirEnumDecl(...@@ -2591,7 +2592,7 @@ fn zirEnumDecl(
2591 try sema.errNote(block, other_tag_src, msg, "other field here", .{});2592 try sema.errNote(block, other_tag_src, msg, "other field here", .{});
2592 break :msg msg;2593 break :msg msg;
2593 };2594 };
2594 return sema.failWithOwnedErrorMsg(block, msg);2595 return sema.failWithOwnedErrorMsg(msg);
2595 }2596 }
25962597
2597 if (has_tag_value) {2598 if (has_tag_value) {
...@@ -2886,7 +2887,7 @@ fn ensureResultUsed(...@@ -2886,7 +2887,7 @@ fn ensureResultUsed(
2886 try sema.errNote(block, src, msg, "consider using `try`, `catch`, or `if`", .{});2887 try sema.errNote(block, src, msg, "consider using `try`, `catch`, or `if`", .{});
2887 break :msg msg;2888 break :msg msg;
2888 };2889 };
2889 return sema.failWithOwnedErrorMsg(block, msg);2890 return sema.failWithOwnedErrorMsg(msg);
2890 },2891 },
2891 else => {2892 else => {
2892 const msg = msg: {2893 const msg = msg: {
...@@ -2896,7 +2897,7 @@ fn ensureResultUsed(...@@ -2896,7 +2897,7 @@ fn ensureResultUsed(
2896 try sema.errNote(block, src, msg, "this error can be suppressed by assigning the value to '_'", .{});2897 try sema.errNote(block, src, msg, "this error can be suppressed by assigning the value to '_'", .{});
2897 break :msg msg;2898 break :msg msg;
2898 };2899 };
2899 return sema.failWithOwnedErrorMsg(block, msg);2900 return sema.failWithOwnedErrorMsg(msg);
2900 },2901 },
2901 }2902 }
2902}2903}
...@@ -2917,7 +2918,7 @@ fn zirEnsureResultNonError(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Com...@@ -2917,7 +2918,7 @@ fn zirEnsureResultNonError(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Com
2917 try sema.errNote(block, src, msg, "consider using `try`, `catch`, or `if`", .{});2918 try sema.errNote(block, src, msg, "consider using `try`, `catch`, or `if`", .{});
2918 break :msg msg;2919 break :msg msg;
2919 };2920 };
2920 return sema.failWithOwnedErrorMsg(block, msg);2921 return sema.failWithOwnedErrorMsg(msg);
2921 },2922 },
2922 else => return,2923 else => return,
2923 }2924 }
...@@ -2957,7 +2958,7 @@ fn zirIndexablePtrLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileE...@@ -2957,7 +2958,7 @@ fn zirIndexablePtrLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileE
2957 );2958 );
2958 break :msg msg;2959 break :msg msg;
2959 };2960 };
2960 return sema.failWithOwnedErrorMsg(block, msg);2961 return sema.failWithOwnedErrorMsg(msg);
2961 }2962 }
29622963
2963 return sema.fieldVal(block, src, object, "len", src);2964 return sema.fieldVal(block, src, object, "len", src);
...@@ -3615,7 +3616,7 @@ fn validateUnionInit(...@@ -3615,7 +3616,7 @@ fn validateUnionInit(
3615 try sema.addDeclaredHereNote(msg, union_ty);3616 try sema.addDeclaredHereNote(msg, union_ty);
3616 break :msg msg;3617 break :msg msg;
3617 };3618 };
3618 return sema.failWithOwnedErrorMsg(block, msg);3619 return sema.failWithOwnedErrorMsg(msg);
3619 }3620 }
36203621
3621 if ((is_comptime or block.is_comptime) and3622 if ((is_comptime or block.is_comptime) and
...@@ -3747,7 +3748,7 @@ fn validateStructInit(...@@ -3747,7 +3748,7 @@ fn validateStructInit(
3747 try sema.errNote(block, other_field_src, msg, "other field here", .{});3748 try sema.errNote(block, other_field_src, msg, "other field here", .{});
3748 break :msg msg;3749 break :msg msg;
3749 };3750 };
3750 return sema.failWithOwnedErrorMsg(block, msg);3751 return sema.failWithOwnedErrorMsg(msg);
3751 }3752 }
3752 found_fields[field_index] = field_ptr;3753 found_fields[field_index] = field_ptr;
3753 }3754 }
...@@ -3808,7 +3809,7 @@ fn validateStructInit(...@@ -3808,7 +3809,7 @@ fn validateStructInit(
3808 .{fqn},3809 .{fqn},
3809 );3810 );
3810 }3811 }
3811 return sema.failWithOwnedErrorMsg(block, msg);3812 return sema.failWithOwnedErrorMsg(msg);
3812 }3813 }
38133814
3814 return;3815 return;
...@@ -3938,7 +3939,7 @@ fn validateStructInit(...@@ -3938,7 +3939,7 @@ fn validateStructInit(
3938 .{fqn},3939 .{fqn},
3939 );3940 );
3940 }3941 }
3941 return sema.failWithOwnedErrorMsg(block, msg);3942 return sema.failWithOwnedErrorMsg(msg);
3942 }3943 }
39433944
3944 if (struct_is_comptime) {3945 if (struct_is_comptime) {
...@@ -4000,7 +4001,7 @@ fn zirValidateArrayInit(...@@ -4000,7 +4001,7 @@ fn zirValidateArrayInit(
4000 }4001 }
40014002
4002 if (root_msg) |msg| {4003 if (root_msg) |msg| {
4003 return sema.failWithOwnedErrorMsg(block, msg);4004 return sema.failWithOwnedErrorMsg(msg);
4004 }4005 }
4005 }4006 }
40064007
...@@ -4180,7 +4181,7 @@ fn zirValidateDeref(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErr...@@ -4180,7 +4181,7 @@ fn zirValidateDeref(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErr
4180 try sema.explainWhyTypeIsComptime(block, src, msg, src.toSrcLoc(src_decl), elem_ty);4181 try sema.explainWhyTypeIsComptime(block, src, msg, src.toSrcLoc(src_decl), elem_ty);
4181 break :msg msg;4182 break :msg msg;
4182 };4183 };
4183 return sema.failWithOwnedErrorMsg(block, msg);4184 return sema.failWithOwnedErrorMsg(msg);
4184 }4185 }
4185}4186}
41864187
...@@ -4206,7 +4207,7 @@ fn failWithBadMemberAccess(...@@ -4206,7 +4207,7 @@ fn failWithBadMemberAccess(
4206 try sema.addDeclaredHereNote(msg, agg_ty);4207 try sema.addDeclaredHereNote(msg, agg_ty);
4207 break :msg msg;4208 break :msg msg;
4208 };4209 };
4209 return sema.failWithOwnedErrorMsg(block, msg);4210 return sema.failWithOwnedErrorMsg(msg);
4210}4211}
42114212
4212fn failWithBadStructFieldAccess(4213fn failWithBadStructFieldAccess(
...@@ -4232,7 +4233,7 @@ fn failWithBadStructFieldAccess(...@@ -4232,7 +4233,7 @@ fn failWithBadStructFieldAccess(
4232 try sema.mod.errNoteNonLazy(struct_obj.srcLoc(sema.mod), msg, "struct declared here", .{});4233 try sema.mod.errNoteNonLazy(struct_obj.srcLoc(sema.mod), msg, "struct declared here", .{});
4233 break :msg msg;4234 break :msg msg;
4234 };4235 };
4235 return sema.failWithOwnedErrorMsg(block, msg);4236 return sema.failWithOwnedErrorMsg(msg);
4236}4237}
42374238
4238fn failWithBadUnionFieldAccess(4239fn failWithBadUnionFieldAccess(
...@@ -4258,7 +4259,7 @@ fn failWithBadUnionFieldAccess(...@@ -4258,7 +4259,7 @@ fn failWithBadUnionFieldAccess(
4258 try sema.mod.errNoteNonLazy(union_obj.srcLoc(sema.mod), msg, "union declared here", .{});4259 try sema.mod.errNoteNonLazy(union_obj.srcLoc(sema.mod), msg, "union declared here", .{});
4259 break :msg msg;4260 break :msg msg;
4260 };4261 };
4261 return sema.failWithOwnedErrorMsg(block, msg);4262 return sema.failWithOwnedErrorMsg(msg);
4262}4263}
42634264
4264fn addDeclaredHereNote(sema: *Sema, parent: *Module.ErrorMsg, decl_ty: Type) !void {4265fn 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...@@ -4747,7 +4748,7 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr
4747 @import("clang.zig").Stage2ErrorMsg.delete(c_import_res.errors.ptr, c_import_res.errors.len);4748 @import("clang.zig").Stage2ErrorMsg.delete(c_import_res.errors.ptr, c_import_res.errors.len);
4748 break :msg msg;4749 break :msg msg;
4749 };4750 };
4750 return sema.failWithOwnedErrorMsg(parent_block, msg);4751 return sema.failWithOwnedErrorMsg(msg);
4751 }4752 }
4752 const c_import_pkg = Package.create(4753 const c_import_pkg = Package.create(
4753 sema.gpa,4754 sema.gpa,
...@@ -4921,7 +4922,7 @@ fn analyzeBlockBody(...@@ -4921,7 +4922,7 @@ fn analyzeBlockBody(
49214922
4922 break :msg msg;4923 break :msg msg;
4923 };4924 };
4924 return sema.failWithOwnedErrorMsg(child_block, msg);4925 return sema.failWithOwnedErrorMsg(msg);
4925 }4926 }
4926 const ty_inst = try sema.addType(resolved_ty);4927 const ty_inst = try sema.addType(resolved_ty);
4927 try sema.air_extra.ensureUnusedCapacity(gpa, @typeInfo(Air.Block).Struct.fields.len +4928 try sema.air_extra.ensureUnusedCapacity(gpa, @typeInfo(Air.Block).Struct.fields.len +
...@@ -5060,7 +5061,7 @@ pub fn analyzeExport(...@@ -5060,7 +5061,7 @@ pub fn analyzeExport(
5060 try sema.addDeclaredHereNote(msg, exported_decl.ty);5061 try sema.addDeclaredHereNote(msg, exported_decl.ty);
5061 break :msg msg;5062 break :msg msg;
5062 };5063 };
5063 return sema.failWithOwnedErrorMsg(block, msg);5064 return sema.failWithOwnedErrorMsg(msg);
5064 }5065 }
50655066
5066 const gpa = mod.gpa;5067 const gpa = mod.gpa;
...@@ -5150,7 +5151,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.Inst...@@ -5150,7 +5151,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.Inst
5150 try sema.errNote(block, gop.value_ptr.src, msg, "other instance here", .{});5151 try sema.errNote(block, gop.value_ptr.src, msg, "other instance here", .{});
5151 break :msg msg;5152 break :msg msg;
5152 };5153 };
5153 return sema.failWithOwnedErrorMsg(block, msg);5154 return sema.failWithOwnedErrorMsg(msg);
5154 }5155 }
5155 gop.value_ptr.* = .{ .alignment = alignment, .src = src };5156 gop.value_ptr.* = .{ .alignment = alignment, .src = src };
5156}5157}
...@@ -5413,7 +5414,7 @@ fn lookupInNamespace(...@@ -5413,7 +5414,7 @@ fn lookupInNamespace(
5413 }5414 }
5414 break :msg msg;5415 break :msg msg;
5415 };5416 };
5416 return sema.failWithOwnedErrorMsg(block, msg);5417 return sema.failWithOwnedErrorMsg(msg);
5417 },5418 },
5418 }5419 }
5419 } else if (namespace.decls.getKeyAdapted(ident_name, Module.DeclAdapter{ .mod = mod })) |decl_index| {5420 } else if (namespace.decls.getKeyAdapted(ident_name, Module.DeclAdapter{ .mod = mod })) |decl_index| {
...@@ -5872,9 +5873,8 @@ fn analyzeCall(...@@ -5872,9 +5873,8 @@ fn analyzeCall(
5872 sema.analyzeBody(&child_block, fn_info.body) catch |err| switch (err) {5873 sema.analyzeBody(&child_block, fn_info.body) catch |err| switch (err) {
5873 error.ComptimeReturn => break :result inlining.comptime_result,5874 error.ComptimeReturn => break :result inlining.comptime_result,
5874 error.AnalysisFail => {5875 error.AnalysisFail => {
5875 const err_msg = inlining.err orelse return err;5876 const err_msg = sema.err orelse return err;
5876 try sema.errNote(block, call_src, err_msg, "called from here", .{});5877 try sema.errNote(block, call_src, err_msg, "called from here", .{});
5877 if (block.inlining) |some| some.err = err_msg;
5878 return err;5878 return err;
5879 },5879 },
5880 else => |e| return e,5880 else => |e| return e,
...@@ -6802,7 +6802,7 @@ fn zirMergeErrorSets(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr...@@ -6802,7 +6802,7 @@ fn zirMergeErrorSets(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr
6802 try sema.errNote(block, src, msg, "'||' merges error sets; 'or' performs boolean OR", .{});6802 try sema.errNote(block, src, msg, "'||' merges error sets; 'or' performs boolean OR", .{});
6803 break :msg msg;6803 break :msg msg;
6804 };6804 };
6805 return sema.failWithOwnedErrorMsg(block, msg);6805 return sema.failWithOwnedErrorMsg(msg);
6806 }6806 }
6807 const lhs_ty = try sema.analyzeAsType(block, lhs_src, lhs);6807 const lhs_ty = try sema.analyzeAsType(block, lhs_src, lhs);
6808 const rhs_ty = try sema.analyzeAsType(block, rhs_src, rhs);6808 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...@@ -6927,7 +6927,7 @@ fn zirIntToEnum(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A
6927 try sema.addDeclaredHereNote(msg, dest_ty);6927 try sema.addDeclaredHereNote(msg, dest_ty);
6928 break :msg msg;6928 break :msg msg;
6929 };6929 };
6930 return sema.failWithOwnedErrorMsg(block, msg);6930 return sema.failWithOwnedErrorMsg(msg);
6931 }6931 }
6932 return sema.addConstant(dest_ty, int_val);6932 return sema.addConstant(dest_ty, int_val);
6933 }6933 }
...@@ -7632,7 +7632,7 @@ fn funcCommon(...@@ -7632,7 +7632,7 @@ fn funcCommon(
7632 try sema.addDeclaredHereNote(msg, bare_return_type);7632 try sema.addDeclaredHereNote(msg, bare_return_type);
7633 break :msg msg;7633 break :msg msg;
7634 };7634 };
7635 return sema.failWithOwnedErrorMsg(block, msg);7635 return sema.failWithOwnedErrorMsg(msg);
7636 }7636 }
7637 if (!Type.fnCallingConventionAllowsZigTypes(cc_workaround) and !sema.validateExternType(return_type, .ret_ty)) {7637 if (!Type.fnCallingConventionAllowsZigTypes(cc_workaround) and !sema.validateExternType(return_type, .ret_ty)) {
7638 const msg = msg: {7638 const msg = msg: {
...@@ -7647,7 +7647,7 @@ fn funcCommon(...@@ -7647,7 +7647,7 @@ fn funcCommon(
7647 try sema.addDeclaredHereNote(msg, return_type);7647 try sema.addDeclaredHereNote(msg, return_type);
7648 break :msg msg;7648 break :msg msg;
7649 };7649 };
7650 return sema.failWithOwnedErrorMsg(block, msg);7650 return sema.failWithOwnedErrorMsg(msg);
7651 }7651 }
76527652
7653 const arch = sema.mod.getTarget().cpu.arch;7653 const arch = sema.mod.getTarget().cpu.arch;
...@@ -7812,7 +7812,7 @@ fn analyzeParameter(...@@ -7812,7 +7812,7 @@ fn analyzeParameter(
7812 try sema.errNote(block, param_src, msg, "function is generic because of this parameter", .{});7812 try sema.errNote(block, param_src, msg, "function is generic because of this parameter", .{});
7813 break :msg msg;7813 break :msg msg;
7814 };7814 };
7815 return sema.failWithOwnedErrorMsg(block, msg);7815 return sema.failWithOwnedErrorMsg(msg);
7816 }7816 }
7817 if (this_generic and !Type.fnCallingConventionAllowsZigTypes(cc)) {7817 if (this_generic and !Type.fnCallingConventionAllowsZigTypes(cc)) {
7818 return sema.fail(block, param_src, "generic parameters not allowed in function with calling convention '{s}'", .{@tagName(cc)});7818 return sema.fail(block, param_src, "generic parameters not allowed in function with calling convention '{s}'", .{@tagName(cc)});
...@@ -7828,7 +7828,7 @@ fn analyzeParameter(...@@ -7828,7 +7828,7 @@ fn analyzeParameter(
7828 try sema.addDeclaredHereNote(msg, param.ty);7828 try sema.addDeclaredHereNote(msg, param.ty);
7829 break :msg msg;7829 break :msg msg;
7830 };7830 };
7831 return sema.failWithOwnedErrorMsg(block, msg);7831 return sema.failWithOwnedErrorMsg(msg);
7832 }7832 }
7833 if (!Type.fnCallingConventionAllowsZigTypes(cc) and !sema.validateExternType(param.ty, .param_ty)) {7833 if (!Type.fnCallingConventionAllowsZigTypes(cc) and !sema.validateExternType(param.ty, .param_ty)) {
7834 const msg = msg: {7834 const msg = msg: {
...@@ -7843,7 +7843,7 @@ fn analyzeParameter(...@@ -7843,7 +7843,7 @@ fn analyzeParameter(
7843 try sema.addDeclaredHereNote(msg, param.ty);7843 try sema.addDeclaredHereNote(msg, param.ty);
7844 break :msg msg;7844 break :msg msg;
7845 };7845 };
7846 return sema.failWithOwnedErrorMsg(block, msg);7846 return sema.failWithOwnedErrorMsg(msg);
7847 }7847 }
7848 if (requires_comptime and !param.is_comptime) {7848 if (requires_comptime and !param.is_comptime) {
7849 const msg = msg: {7849 const msg = msg: {
...@@ -7855,7 +7855,7 @@ fn analyzeParameter(...@@ -7855,7 +7855,7 @@ fn analyzeParameter(
7855 try sema.addDeclaredHereNote(msg, param.ty);7855 try sema.addDeclaredHereNote(msg, param.ty);
7856 break :msg msg;7856 break :msg msg;
7857 };7857 };
7858 return sema.failWithOwnedErrorMsg(block, msg);7858 return sema.failWithOwnedErrorMsg(msg);
7859 }7859 }
7860}7860}
78617861
...@@ -8318,7 +8318,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air...@@ -8318,7 +8318,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
83188318
8319 break :msg msg;8319 break :msg msg;
8320 };8320 };
8321 return sema.failWithOwnedErrorMsg(block, msg);8321 return sema.failWithOwnedErrorMsg(msg);
8322 },8322 },
83238323
8324 .Pointer => {8324 .Pointer => {
...@@ -8333,7 +8333,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air...@@ -8333,7 +8333,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
83338333
8334 break :msg msg;8334 break :msg msg;
8335 };8335 };
8336 return sema.failWithOwnedErrorMsg(block, msg);8336 return sema.failWithOwnedErrorMsg(msg);
8337 },8337 },
8338 .Struct, .Union => if (dest_ty.containerLayout() == .Auto) {8338 .Struct, .Union => if (dest_ty.containerLayout() == .Auto) {
8339 const container = switch (dest_ty.zigTypeTag()) {8339 const container = switch (dest_ty.zigTypeTag()) {
...@@ -8383,7 +8383,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air...@@ -8383,7 +8383,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
83838383
8384 break :msg msg;8384 break :msg msg;
8385 };8385 };
8386 return sema.failWithOwnedErrorMsg(block, msg);8386 return sema.failWithOwnedErrorMsg(msg);
8387 },8387 },
8388 .Pointer => {8388 .Pointer => {
8389 const msg = msg: {8389 const msg = msg: {
...@@ -8397,7 +8397,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air...@@ -8397,7 +8397,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
83978397
8398 break :msg msg;8398 break :msg msg;
8399 };8399 };
8400 return sema.failWithOwnedErrorMsg(block, msg);8400 return sema.failWithOwnedErrorMsg(msg);
8401 },8401 },
8402 .Struct, .Union => if (operand_ty.containerLayout() == .Auto) {8402 .Struct, .Union => if (operand_ty.containerLayout() == .Auto) {
8403 const container = switch (operand_ty.zigTypeTag()) {8403 const container = switch (operand_ty.zigTypeTag()) {
...@@ -8663,7 +8663,7 @@ fn zirSwitchCapture(...@@ -8663,7 +8663,7 @@ fn zirSwitchCapture(
8663 try sema.errNote(block, item_src, msg, "type '{}' here", .{field.ty.fmt(sema.mod)});8663 try sema.errNote(block, item_src, msg, "type '{}' here", .{field.ty.fmt(sema.mod)});
8664 break :msg msg;8664 break :msg msg;
8665 };8665 };
8666 return sema.failWithOwnedErrorMsg(block, msg);8666 return sema.failWithOwnedErrorMsg(msg);
8667 }8667 }
8668 }8668 }
86698669
...@@ -8786,7 +8786,7 @@ fn zirSwitchCond(...@@ -8786,7 +8786,7 @@ fn zirSwitchCond(
8786 }8786 }
8787 break :msg msg;8787 break :msg msg;
8788 };8788 };
8789 return sema.failWithOwnedErrorMsg(block, msg);8789 return sema.failWithOwnedErrorMsg(msg);
8790 };8790 };
8791 return sema.unionToTag(block, enum_ty, operand, src);8791 return sema.unionToTag(block, enum_ty, operand, src);
8792 },8792 },
...@@ -8875,7 +8875,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError...@@ -8875,7 +8875,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
8875 );8875 );
8876 break :msg msg;8876 break :msg msg;
8877 };8877 };
8878 return sema.failWithOwnedErrorMsg(block, msg);8878 return sema.failWithOwnedErrorMsg(msg);
8879 }8879 }
88808880
8881 const target = sema.mod.getTarget();8881 const target = sema.mod.getTarget();
...@@ -8979,7 +8979,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError...@@ -8979,7 +8979,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
8979 );8979 );
8980 break :msg msg;8980 break :msg msg;
8981 };8981 };
8982 return sema.failWithOwnedErrorMsg(block, msg);8982 return sema.failWithOwnedErrorMsg(msg);
8983 } else if (special_prong == .none and operand_ty.isNonexhaustiveEnum() and !union_originally) {8983 } else if (special_prong == .none and operand_ty.isNonexhaustiveEnum() and !union_originally) {
8984 return sema.fail(8984 return sema.fail(
8985 block,8985 block,
...@@ -9079,7 +9079,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError...@@ -9079,7 +9079,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
9079 if (maybe_msg) |msg| {9079 if (maybe_msg) |msg| {
9080 maybe_msg = null;9080 maybe_msg = null;
9081 try sema.addDeclaredHereNote(msg, operand_ty);9081 try sema.addDeclaredHereNote(msg, operand_ty);
9082 return sema.failWithOwnedErrorMsg(block, msg);9082 return sema.failWithOwnedErrorMsg(msg);
9083 }9083 }
90849084
9085 if (special_prong == .@"else" and seen_errors.count() == operand_ty.errorSetNames().len) {9085 if (special_prong == .@"else" and seen_errors.count() == operand_ty.errorSetNames().len) {
...@@ -9888,7 +9888,7 @@ fn validateSwitchDupe(...@@ -9888,7 +9888,7 @@ fn validateSwitchDupe(
9888 );9888 );
9889 break :msg msg;9889 break :msg msg;
9890 };9890 };
9891 return sema.failWithOwnedErrorMsg(block, msg);9891 return sema.failWithOwnedErrorMsg(msg);
9892}9892}
98939893
9894fn validateSwitchItemBool(9894fn validateSwitchItemBool(
...@@ -9958,7 +9958,7 @@ fn validateSwitchNoRange(...@@ -9958,7 +9958,7 @@ fn validateSwitchNoRange(
9958 );9958 );
9959 break :msg msg;9959 break :msg msg;
9960 };9960 };
9961 return sema.failWithOwnedErrorMsg(block, msg);9961 return sema.failWithOwnedErrorMsg(msg);
9962}9962}
99639963
9964fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {9964fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {
...@@ -12882,7 +12882,7 @@ fn analyzeCmpUnionTag(...@@ -12882,7 +12882,7 @@ fn analyzeCmpUnionTag(
12882 try sema.mod.errNoteNonLazy(union_ty.declSrcLoc(sema.mod), msg, "union '{}' is not a tagged union", .{union_ty.fmt(sema.mod)});12882 try sema.mod.errNoteNonLazy(union_ty.declSrcLoc(sema.mod), msg, "union '{}' is not a tagged union", .{union_ty.fmt(sema.mod)});
12883 break :msg msg;12883 break :msg msg;
12884 };12884 };
12885 return sema.failWithOwnedErrorMsg(block, msg);12885 return sema.failWithOwnedErrorMsg(msg);
12886 };12886 };
12887 // Coerce both the union and the tag to the union's tag type, and then execute the12887 // Coerce both the union and the tag to the union's tag type, and then execute the
12888 // enum comparison codepath.12888 // enum comparison codepath.
...@@ -13170,7 +13170,7 @@ fn zirClosureGet(...@@ -13170,7 +13170,7 @@ fn zirClosureGet(
13170 // TODO add "declared here" note13170 // TODO add "declared here" note
13171 break :msg msg;13171 break :msg msg;
13172 };13172 };
13173 return sema.failWithOwnedErrorMsg(block, msg);13173 return sema.failWithOwnedErrorMsg(msg);
13174 }13174 }
1317513175
13176 return sema.addConstant(tv.ty, tv.val);13176 return sema.addConstant(tv.ty, tv.val);
...@@ -14907,7 +14907,7 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air...@@ -14907,7 +14907,7 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
14907 try sema.addDeclaredHereNote(msg, elem_ty);14907 try sema.addDeclaredHereNote(msg, elem_ty);
14908 break :msg msg;14908 break :msg msg;
14909 };14909 };
14910 return sema.failWithOwnedErrorMsg(block, msg);14910 return sema.failWithOwnedErrorMsg(msg);
14911 }14911 }
14912 if (elem_ty.zigTypeTag() == .Opaque) {14912 if (elem_ty.zigTypeTag() == .Opaque) {
14913 return sema.fail(block, elem_ty_src, "C pointers cannot point to opaque types", .{});14913 return sema.fail(block, elem_ty_src, "C pointers cannot point to opaque types", .{});
...@@ -15078,7 +15078,7 @@ fn zirStructInit(...@@ -15078,7 +15078,7 @@ fn zirStructInit(
15078 try sema.errNote(block, other_field_src, msg, "other field here", .{});15078 try sema.errNote(block, other_field_src, msg, "other field here", .{});
15079 break :msg msg;15079 break :msg msg;
15080 };15080 };
15081 return sema.failWithOwnedErrorMsg(block, msg);15081 return sema.failWithOwnedErrorMsg(msg);
15082 }15082 }
15083 found_fields[field_index] = item.data.field_type;15083 found_fields[field_index] = item.data.field_type;
15084 field_inits[field_index] = try sema.resolveInst(item.data.init);15084 field_inits[field_index] = try sema.resolveInst(item.data.init);
...@@ -15219,7 +15219,7 @@ fn finishStructInit(...@@ -15219,7 +15219,7 @@ fn finishStructInit(
15219 .{fqn},15219 .{fqn},
15220 );15220 );
15221 }15221 }
15222 return sema.failWithOwnedErrorMsg(block, msg);15222 return sema.failWithOwnedErrorMsg(msg);
15223 }15223 }
1522415224
15225 const is_comptime = for (field_inits) |field_init| {15225 const is_comptime = for (field_inits) |field_init| {
...@@ -15294,7 +15294,7 @@ fn zirStructInitAnon(...@@ -15294,7 +15294,7 @@ fn zirStructInitAnon(
15294 try sema.errNote(block, prev_source, msg, "other field here", .{});15294 try sema.errNote(block, prev_source, msg, "other field here", .{});
15295 break :msg msg;15295 break :msg msg;
15296 };15296 };
15297 return sema.failWithOwnedErrorMsg(block, msg);15297 return sema.failWithOwnedErrorMsg(msg);
15298 }15298 }
15299 gop.value_ptr.* = @intCast(u32, i);15299 gop.value_ptr.* = @intCast(u32, i);
1530015300
...@@ -15310,7 +15310,7 @@ fn zirStructInitAnon(...@@ -15310,7 +15310,7 @@ fn zirStructInitAnon(
15310 try sema.addDeclaredHereNote(msg, types[i]);15310 try sema.addDeclaredHereNote(msg, types[i]);
15311 break :msg msg;15311 break :msg msg;
15312 };15312 };
15313 return sema.failWithOwnedErrorMsg(block, msg);15313 return sema.failWithOwnedErrorMsg(msg);
15314 }15314 }
15315 const init_src = src; // TODO better source location15315 const init_src = src; // TODO better source location
15316 if (try sema.resolveMaybeUndefVal(block, init_src, init)) |init_val| {15316 if (try sema.resolveMaybeUndefVal(block, init_src, init)) |init_val| {
...@@ -15508,7 +15508,7 @@ fn zirArrayInitAnon(...@@ -15508,7 +15508,7 @@ fn zirArrayInitAnon(
15508 try sema.addDeclaredHereNote(msg, types[i]);15508 try sema.addDeclaredHereNote(msg, types[i]);
15509 break :msg msg;15509 break :msg msg;
15510 };15510 };
15511 return sema.failWithOwnedErrorMsg(block, msg);15511 return sema.failWithOwnedErrorMsg(msg);
15512 }15512 }
15513 if (try sema.resolveMaybeUndefVal(block, operand_src, elem)) |val| {15513 if (try sema.resolveMaybeUndefVal(block, operand_src, elem)) |val| {
15514 values[i] = val;15514 values[i] = val;
...@@ -15822,7 +15822,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air...@@ -15822,7 +15822,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
15822 try sema.addDeclaredHereNote(msg, operand_ty);15822 try sema.addDeclaredHereNote(msg, operand_ty);
15823 break :msg msg;15823 break :msg msg;
15824 };15824 };
15825 return sema.failWithOwnedErrorMsg(block, msg);15825 return sema.failWithOwnedErrorMsg(msg);
15826 },15826 },
15827 else => return sema.fail(block, operand_src, "expected enum or union; found '{}'", .{15827 else => return sema.fail(block, operand_src, "expected enum or union; found '{}'", .{
15828 operand_ty.fmt(mod),15828 operand_ty.fmt(mod),
...@@ -15841,7 +15841,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air...@@ -15841,7 +15841,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
15841 try mod.errNoteNonLazy(enum_decl.srcLoc(), msg, "declared here", .{});15841 try mod.errNoteNonLazy(enum_decl.srcLoc(), msg, "declared here", .{});
15842 break :msg msg;15842 break :msg msg;
15843 };15843 };
15844 return sema.failWithOwnedErrorMsg(block, msg);15844 return sema.failWithOwnedErrorMsg(msg);
15845 };15845 };
15846 const field_name = enum_ty.enumFieldName(field_index);15846 const field_name = enum_ty.enumFieldName(field_index);
15847 return sema.addStrLit(block, field_name);15847 return sema.addStrLit(block, field_name);
...@@ -15991,7 +15991,7 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I...@@ -15991,7 +15991,7 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I
15991 try sema.addDeclaredHereNote(msg, elem_ty);15991 try sema.addDeclaredHereNote(msg, elem_ty);
15992 break :msg msg;15992 break :msg msg;
15993 };15993 };
15994 return sema.failWithOwnedErrorMsg(block, msg);15994 return sema.failWithOwnedErrorMsg(msg);
15995 }15995 }
15996 if (elem_ty.zigTypeTag() == .Opaque) {15996 if (elem_ty.zigTypeTag() == .Opaque) {
15997 return sema.fail(block, src, "C pointers cannot point to opaque types", .{});15997 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...@@ -16394,7 +16394,7 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I
16394 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);16394 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);
16395 break :msg msg;16395 break :msg msg;
16396 };16396 };
16397 return sema.failWithOwnedErrorMsg(block, msg);16397 return sema.failWithOwnedErrorMsg(msg);
16398 }16398 }
16399 }16399 }
1640016400
...@@ -16428,7 +16428,7 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I...@@ -16428,7 +16428,7 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I
16428 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);16428 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);
16429 break :msg msg;16429 break :msg msg;
16430 };16430 };
16431 return sema.failWithOwnedErrorMsg(block, msg);16431 return sema.failWithOwnedErrorMsg(msg);
16432 }16432 }
16433 }16433 }
1643416434
...@@ -16898,7 +16898,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat...@@ -16898,7 +16898,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat
16898 try sema.addDeclaredHereNote(msg, dest_ty);16898 try sema.addDeclaredHereNote(msg, dest_ty);
16899 break :msg msg;16899 break :msg msg;
16900 };16900 };
16901 return sema.failWithOwnedErrorMsg(block, msg);16901 return sema.failWithOwnedErrorMsg(msg);
16902 }16902 }
1690316903
16904 if (maybe_operand_val) |val| {16904 if (maybe_operand_val) |val| {
...@@ -16916,7 +16916,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat...@@ -16916,7 +16916,7 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat
16916 try sema.addDeclaredHereNote(msg, dest_ty);16916 try sema.addDeclaredHereNote(msg, dest_ty);
16917 break :msg msg;16917 break :msg msg;
16918 };16918 };
16919 return sema.failWithOwnedErrorMsg(block, msg);16919 return sema.failWithOwnedErrorMsg(msg);
16920 }16920 }
16921 }16921 }
1692216922
...@@ -17054,7 +17054,7 @@ fn zirTruncate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17054,7 +17054,7 @@ fn zirTruncate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17054 });17054 });
17055 break :msg msg;17055 break :msg msg;
17056 };17056 };
17057 return sema.failWithOwnedErrorMsg(block, msg);17057 return sema.failWithOwnedErrorMsg(msg);
17058 }17058 }
17059 }17059 }
1706017060
...@@ -17345,7 +17345,7 @@ fn bitOffsetOf(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!u6...@@ -17345,7 +17345,7 @@ fn bitOffsetOf(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!u6
17345 try sema.addDeclaredHereNote(msg, ty);17345 try sema.addDeclaredHereNote(msg, ty);
17346 break :msg msg;17346 break :msg msg;
17347 };17347 };
17348 return sema.failWithOwnedErrorMsg(block, msg);17348 return sema.failWithOwnedErrorMsg(msg);
17349 },17349 },
17350 }17350 }
1735117351
...@@ -17449,7 +17449,7 @@ fn checkPtrOperand(...@@ -17449,7 +17449,7 @@ fn checkPtrOperand(
1744917449
17450 break :msg msg;17450 break :msg msg;
17451 };17451 };
17452 return sema.failWithOwnedErrorMsg(block, msg);17452 return sema.failWithOwnedErrorMsg(msg);
17453 },17453 },
17454 .Optional => if (ty.isPtrLikeOptional()) return,17454 .Optional => if (ty.isPtrLikeOptional()) return,
17455 else => {},17455 else => {},
...@@ -17479,7 +17479,7 @@ fn checkPtrType(...@@ -17479,7 +17479,7 @@ fn checkPtrType(
1747917479
17480 break :msg msg;17480 break :msg msg;
17481 };17481 };
17482 return sema.failWithOwnedErrorMsg(block, msg);17482 return sema.failWithOwnedErrorMsg(msg);
17483 },17483 },
17484 .Optional => if (ty.isPtrLikeOptional()) return,17484 .Optional => if (ty.isPtrLikeOptional()) return,
17485 else => {},17485 else => {},
...@@ -17615,7 +17615,7 @@ fn checkComptimeVarStore(...@@ -17615,7 +17615,7 @@ fn checkComptimeVarStore(
17615 try sema.errNote(block, cond_src, msg, "runtime condition here", .{});17615 try sema.errNote(block, cond_src, msg, "runtime condition here", .{});
17616 break :msg msg;17616 break :msg msg;
17617 };17617 };
17618 return sema.failWithOwnedErrorMsg(block, msg);17618 return sema.failWithOwnedErrorMsg(msg);
17619 }17619 }
17620 if (block.runtime_loop) |loop_src| {17620 if (block.runtime_loop) |loop_src| {
17621 const msg = msg: {17621 const msg = msg: {
...@@ -17624,7 +17624,7 @@ fn checkComptimeVarStore(...@@ -17624,7 +17624,7 @@ fn checkComptimeVarStore(
17624 try sema.errNote(block, loop_src, msg, "non-inline loop here", .{});17624 try sema.errNote(block, loop_src, msg, "non-inline loop here", .{});
17625 break :msg msg;17625 break :msg msg;
17626 };17626 };
17627 return sema.failWithOwnedErrorMsg(block, msg);17627 return sema.failWithOwnedErrorMsg(msg);
17628 }17628 }
17629 unreachable;17629 unreachable;
17630 }17630 }
...@@ -17761,7 +17761,7 @@ fn checkVectorizableBinaryOperands(...@@ -17761,7 +17761,7 @@ fn checkVectorizableBinaryOperands(
17761 try sema.errNote(block, rhs_src, msg, "length {d} here", .{rhs_len});17761 try sema.errNote(block, rhs_src, msg, "length {d} here", .{rhs_len});
17762 break :msg msg;17762 break :msg msg;
17763 };17763 };
17764 return sema.failWithOwnedErrorMsg(block, msg);17764 return sema.failWithOwnedErrorMsg(msg);
17765 }17765 }
17766 } else {17766 } else {
17767 const msg = msg: {17767 const msg = msg: {
...@@ -17778,7 +17778,7 @@ fn checkVectorizableBinaryOperands(...@@ -17778,7 +17778,7 @@ fn checkVectorizableBinaryOperands(
17778 }17778 }
17779 break :msg msg;17779 break :msg msg;
17780 };17780 };
17781 return sema.failWithOwnedErrorMsg(block, msg);17781 return sema.failWithOwnedErrorMsg(msg);
17782 }17782 }
17783}17783}
1778417784
...@@ -18178,7 +18178,7 @@ fn analyzeShuffle(...@@ -18178,7 +18178,7 @@ fn analyzeShuffle(
1817818178
18179 break :msg msg;18179 break :msg msg;
18180 };18180 };
18181 return sema.failWithOwnedErrorMsg(block, msg);18181 return sema.failWithOwnedErrorMsg(msg);
18182 }18182 }
18183 }18183 }
1818418184
...@@ -18774,7 +18774,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr...@@ -18774,7 +18774,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr
18774 try sema.addDeclaredHereNote(msg, struct_ty);18774 try sema.addDeclaredHereNote(msg, struct_ty);
18775 break :msg msg;18775 break :msg msg;
18776 };18776 };
18777 return sema.failWithOwnedErrorMsg(block, msg);18777 return sema.failWithOwnedErrorMsg(msg);
18778 }18778 }
18779 return sema.addConstant(result_ptr, payload.data.container_ptr);18779 return sema.addConstant(result_ptr, payload.data.container_ptr);
18780 }18780 }
...@@ -19574,7 +19574,7 @@ fn requireRuntimeBlock(sema: *Sema, block: *Block, src: LazySrcLoc, runtime_src:...@@ -19574,7 +19574,7 @@ fn requireRuntimeBlock(sema: *Sema, block: *Block, src: LazySrcLoc, runtime_src:
19574 }19574 }
19575 break :msg msg;19575 break :msg msg;
19576 };19576 };
19577 return sema.failWithOwnedErrorMsg(block, msg);19577 return sema.failWithOwnedErrorMsg(msg);
19578 }19578 }
19579 try sema.requireFunctionBlock(block, src);19579 try sema.requireFunctionBlock(block, src);
19580}19580}
...@@ -19603,7 +19603,7 @@ fn validateVarType(...@@ -19603,7 +19603,7 @@ fn validateVarType(
1960319603
19604 break :msg msg;19604 break :msg msg;
19605 };19605 };
19606 return sema.failWithOwnedErrorMsg(block, msg);19606 return sema.failWithOwnedErrorMsg(msg);
19607}19607}
1960819608
19609fn validateRunTimeType(19609fn validateRunTimeType(
...@@ -20305,7 +20305,7 @@ fn emitBackwardBranch(sema: *Sema, block: *Block, src: LazySrcLoc) !void {...@@ -20305,7 +20305,7 @@ fn emitBackwardBranch(sema: *Sema, block: *Block, src: LazySrcLoc) !void {
20305 "use @setEvalBranchQuota() to raise the branch limit from {d}",20305 "use @setEvalBranchQuota() to raise the branch limit from {d}",
20306 .{sema.branch_quota},20306 .{sema.branch_quota},
20307 );20307 );
20308 return sema.failWithOwnedErrorMsg(block, msg);20308 return sema.failWithOwnedErrorMsg(msg);
20309 }20309 }
20310}20310}
2031120311
...@@ -20413,7 +20413,7 @@ fn fieldVal(...@@ -20413,7 +20413,7 @@ fn fieldVal(
20413 try sema.addDeclaredHereNote(msg, child_type);20413 try sema.addDeclaredHereNote(msg, child_type);
20414 break :msg msg;20414 break :msg msg;
20415 };20415 };
20416 return sema.failWithOwnedErrorMsg(block, msg);20416 return sema.failWithOwnedErrorMsg(msg);
20417 } else (try sema.mod.getErrorValue(field_name)).key;20417 } else (try sema.mod.getErrorValue(field_name)).key;
2041820418
20419 return sema.addConstant(20419 return sema.addConstant(
...@@ -20468,7 +20468,7 @@ fn fieldVal(...@@ -20468,7 +20468,7 @@ fn fieldVal(
20468 if (child_type.zigTypeTag() == .Array) try sema.errNote(block, src, msg, "array values have 'len' member", .{});20468 if (child_type.zigTypeTag() == .Array) try sema.errNote(block, src, msg, "array values have 'len' member", .{});
20469 break :msg msg;20469 break :msg msg;
20470 };20470 };
20471 return sema.failWithOwnedErrorMsg(block, msg);20471 return sema.failWithOwnedErrorMsg(msg);
20472 },20472 },
20473 }20473 }
20474 },20474 },
...@@ -20806,7 +20806,7 @@ fn fieldCallBind(...@@ -20806,7 +20806,7 @@ fn fieldCallBind(
20806 try sema.addDeclaredHereNote(msg, concrete_ty);20806 try sema.addDeclaredHereNote(msg, concrete_ty);
20807 break :msg msg;20807 break :msg msg;
20808 };20808 };
20809 return sema.failWithOwnedErrorMsg(block, msg);20809 return sema.failWithOwnedErrorMsg(msg);
20810}20810}
2081120811
20812fn finishFieldCallBind(20812fn finishFieldCallBind(
...@@ -20861,7 +20861,7 @@ fn namespaceLookup(...@@ -20861,7 +20861,7 @@ fn namespaceLookup(
20861 try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{});20861 try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{});
20862 break :msg msg;20862 break :msg msg;
20863 };20863 };
20864 return sema.failWithOwnedErrorMsg(block, msg);20864 return sema.failWithOwnedErrorMsg(msg);
20865 }20865 }
20866 return decl_index;20866 return decl_index;
20867 }20867 }
...@@ -21194,7 +21194,7 @@ fn unionFieldPtr(...@@ -21194,7 +21194,7 @@ fn unionFieldPtr(
21194 try sema.addDeclaredHereNote(msg, union_ty);21194 try sema.addDeclaredHereNote(msg, union_ty);
21195 break :msg msg;21195 break :msg msg;
21196 };21196 };
21197 return sema.failWithOwnedErrorMsg(block, msg);21197 return sema.failWithOwnedErrorMsg(msg);
21198 }21198 }
21199 },21199 },
21200 .Packed, .Extern => {},21200 .Packed, .Extern => {},
...@@ -21264,7 +21264,7 @@ fn unionFieldVal(...@@ -21264,7 +21264,7 @@ fn unionFieldVal(
21264 try sema.addDeclaredHereNote(msg, union_ty);21264 try sema.addDeclaredHereNote(msg, union_ty);
21265 break :msg msg;21265 break :msg msg;
21266 };21266 };
21267 return sema.failWithOwnedErrorMsg(block, msg);21267 return sema.failWithOwnedErrorMsg(msg);
21268 }21268 }
21269 },21269 },
21270 .Packed, .Extern => {21270 .Packed, .Extern => {
...@@ -21438,7 +21438,7 @@ fn validateRuntimeElemAccess(...@@ -21438,7 +21438,7 @@ fn validateRuntimeElemAccess(
2143821438
21439 break :msg msg;21439 break :msg msg;
21440 };21440 };
21441 return sema.failWithOwnedErrorMsg(block, msg);21441 return sema.failWithOwnedErrorMsg(msg);
21442 }21442 }
21443}21443}
2144421444
...@@ -22214,7 +22214,7 @@ fn coerceExtra(...@@ -22214,7 +22214,7 @@ fn coerceExtra(
22214 try sema.addDeclaredHereNote(msg, dest_ty);22214 try sema.addDeclaredHereNote(msg, dest_ty);
22215 break :msg msg;22215 break :msg msg;
22216 };22216 };
22217 return sema.failWithOwnedErrorMsg(block, msg);22217 return sema.failWithOwnedErrorMsg(msg);
22218 };22218 };
22219 return sema.addConstant(22219 return sema.addConstant(
22220 dest_ty,22220 dest_ty,
...@@ -22342,7 +22342,7 @@ fn coerceExtra(...@@ -22342,7 +22342,7 @@ fn coerceExtra(
22342 try sema.mod.errNoteNonLazy(ret_ty_src.toSrcLoc(src_decl), msg, "'noreturn' declared here", .{});22342 try sema.mod.errNoteNonLazy(ret_ty_src.toSrcLoc(src_decl), msg, "'noreturn' declared here", .{});
22343 break :msg msg;22343 break :msg msg;
22344 };22344 };
22345 return sema.failWithOwnedErrorMsg(block, msg);22345 return sema.failWithOwnedErrorMsg(msg);
22346 }22346 }
2234722347
22348 const msg = msg: {22348 const msg = msg: {
...@@ -22383,7 +22383,7 @@ fn coerceExtra(...@@ -22383,7 +22383,7 @@ fn coerceExtra(
2238322383
22384 break :msg msg;22384 break :msg msg;
22385 };22385 };
22386 return sema.failWithOwnedErrorMsg(block, msg);22386 return sema.failWithOwnedErrorMsg(msg);
22387}22387}
2238822388
22389const InMemoryCoercionResult = union(enum) {22389const InMemoryCoercionResult = union(enum) {
...@@ -24448,7 +24448,7 @@ fn coerceEnumToUnion(...@@ -24448,7 +24448,7 @@ fn coerceEnumToUnion(
24448 try sema.addDeclaredHereNote(msg, union_ty);24448 try sema.addDeclaredHereNote(msg, union_ty);
24449 break :msg msg;24449 break :msg msg;
24450 };24450 };
24451 return sema.failWithOwnedErrorMsg(block, msg);24451 return sema.failWithOwnedErrorMsg(msg);
24452 };24452 };
2445324453
24454 const enum_tag = try sema.coerce(block, tag_ty, inst, inst_src);24454 const enum_tag = try sema.coerce(block, tag_ty, inst, inst_src);
...@@ -24463,7 +24463,7 @@ fn coerceEnumToUnion(...@@ -24463,7 +24463,7 @@ fn coerceEnumToUnion(
24463 try sema.addDeclaredHereNote(msg, union_ty);24463 try sema.addDeclaredHereNote(msg, union_ty);
24464 break :msg msg;24464 break :msg msg;
24465 };24465 };
24466 return sema.failWithOwnedErrorMsg(block, msg);24466 return sema.failWithOwnedErrorMsg(msg);
24467 };24467 };
24468 const field = union_obj.fields.values()[field_index];24468 const field = union_obj.fields.values()[field_index];
24469 const field_ty = try sema.resolveTypeFields(block, inst_src, field.ty);24469 const field_ty = try sema.resolveTypeFields(block, inst_src, field.ty);
...@@ -24479,7 +24479,7 @@ fn coerceEnumToUnion(...@@ -24479,7 +24479,7 @@ fn coerceEnumToUnion(
24479 try sema.addDeclaredHereNote(msg, union_ty);24479 try sema.addDeclaredHereNote(msg, union_ty);
24480 break :msg msg;24480 break :msg msg;
24481 };24481 };
24482 return sema.failWithOwnedErrorMsg(block, msg);24482 return sema.failWithOwnedErrorMsg(msg);
24483 };24483 };
2448424484
24485 return sema.addConstant(union_ty, try Value.Tag.@"union".create(sema.arena, .{24485 return sema.addConstant(union_ty, try Value.Tag.@"union".create(sema.arena, .{
...@@ -24499,7 +24499,7 @@ fn coerceEnumToUnion(...@@ -24499,7 +24499,7 @@ fn coerceEnumToUnion(
24499 try sema.addDeclaredHereNote(msg, tag_ty);24499 try sema.addDeclaredHereNote(msg, tag_ty);
24500 break :msg msg;24500 break :msg msg;
24501 };24501 };
24502 return sema.failWithOwnedErrorMsg(block, msg);24502 return sema.failWithOwnedErrorMsg(msg);
24503 }24503 }
2450424504
24505 // If the union has all fields 0 bits, the union value is just the enum value.24505 // If the union has all fields 0 bits, the union value is just the enum value.
...@@ -24528,7 +24528,7 @@ fn coerceEnumToUnion(...@@ -24528,7 +24528,7 @@ fn coerceEnumToUnion(
24528 try sema.addDeclaredHereNote(msg, union_ty);24528 try sema.addDeclaredHereNote(msg, union_ty);
24529 break :msg msg;24529 break :msg msg;
24530 };24530 };
24531 return sema.failWithOwnedErrorMsg(block, msg);24531 return sema.failWithOwnedErrorMsg(msg);
24532}24532}
2453324533
24534fn coerceAnonStructToUnion(24534fn coerceAnonStructToUnion(
...@@ -24557,7 +24557,7 @@ fn coerceAnonStructToUnion(...@@ -24557,7 +24557,7 @@ fn coerceAnonStructToUnion(
24557 try sema.addDeclaredHereNote(msg, union_ty);24557 try sema.addDeclaredHereNote(msg, union_ty);
24558 break :msg msg;24558 break :msg msg;
24559 };24559 };
24560 return sema.failWithOwnedErrorMsg(block, msg);24560 return sema.failWithOwnedErrorMsg(msg);
24561 }24561 }
2456224562
24563 const field_name = anon_struct.names[0];24563 const field_name = anon_struct.names[0];
...@@ -24617,7 +24617,7 @@ fn coerceArrayLike(...@@ -24617,7 +24617,7 @@ fn coerceArrayLike(
24617 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});24617 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});
24618 break :msg msg;24618 break :msg msg;
24619 };24619 };
24620 return sema.failWithOwnedErrorMsg(block, msg);24620 return sema.failWithOwnedErrorMsg(msg);
24621 }24621 }
2462224622
24623 const dest_elem_ty = dest_ty.childType();24623 const dest_elem_ty = dest_ty.childType();
...@@ -24689,7 +24689,7 @@ fn coerceTupleToArray(...@@ -24689,7 +24689,7 @@ fn coerceTupleToArray(
24689 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});24689 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});
24690 break :msg msg;24690 break :msg msg;
24691 };24691 };
24692 return sema.failWithOwnedErrorMsg(block, msg);24692 return sema.failWithOwnedErrorMsg(msg);
24693 }24693 }
2469424694
24695 const dest_elems = try sema.usizeCast(block, dest_ty_src, dest_ty.arrayLenIncludingSentinel());24695 const dest_elems = try sema.usizeCast(block, dest_ty_src, dest_ty.arrayLenIncludingSentinel());
...@@ -24852,7 +24852,7 @@ fn coerceTupleToStruct(...@@ -24852,7 +24852,7 @@ fn coerceTupleToStruct(
2485224852
24853 if (root_msg) |msg| {24853 if (root_msg) |msg| {
24854 try sema.addDeclaredHereNote(msg, struct_ty);24854 try sema.addDeclaredHereNote(msg, struct_ty);
24855 return sema.failWithOwnedErrorMsg(block, msg);24855 return sema.failWithOwnedErrorMsg(msg);
24856 }24856 }
2485724857
24858 if (runtime_src) |rs| {24858 if (runtime_src) |rs| {
...@@ -24956,7 +24956,7 @@ fn coerceTupleToTuple(...@@ -24956,7 +24956,7 @@ fn coerceTupleToTuple(
2495624956
24957 if (root_msg) |msg| {24957 if (root_msg) |msg| {
24958 try sema.addDeclaredHereNote(msg, tuple_ty);24958 try sema.addDeclaredHereNote(msg, tuple_ty);
24959 return sema.failWithOwnedErrorMsg(block, msg);24959 return sema.failWithOwnedErrorMsg(msg);
24960 }24960 }
2496124961
24962 if (runtime_src) |rs| {24962 if (runtime_src) |rs| {
...@@ -25521,7 +25521,7 @@ fn analyzeSlice(...@@ -25521,7 +25521,7 @@ fn analyzeSlice(
2552125521
25522 break :msg msg;25522 break :msg msg;
25523 };25523 };
25524 return sema.failWithOwnedErrorMsg(block, msg);25524 return sema.failWithOwnedErrorMsg(msg);
25525 }25525 }
25526 }25526 }
25527 }25527 }
...@@ -26470,7 +26470,7 @@ fn resolvePeerTypes(...@@ -26470,7 +26470,7 @@ fn resolvePeerTypes(
2647026470
26471 break :msg msg;26471 break :msg msg;
26472 };26472 };
26473 return sema.failWithOwnedErrorMsg(block, msg);26473 return sema.failWithOwnedErrorMsg(msg);
26474 }26474 }
2647526475
26476 const chosen_ty = sema.typeOf(chosen);26476 const chosen_ty = sema.typeOf(chosen);
...@@ -27068,7 +27068,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void...@@ -27068,7 +27068,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
27068 try sema.errNote(&block_scope, src, msg, "struct declared here", .{});27068 try sema.errNote(&block_scope, src, msg, "struct declared here", .{});
27069 break :msg msg;27069 break :msg msg;
27070 };27070 };
27071 return sema.failWithOwnedErrorMsg(&block_scope, msg);27071 return sema.failWithOwnedErrorMsg(msg);
27072 }27072 }
27073 gop.value_ptr.* = .{27073 gop.value_ptr.* = .{
27074 .ty = Type.initTag(.noreturn),27074 .ty = Type.initTag(.noreturn),
...@@ -27127,7 +27127,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void...@@ -27127,7 +27127,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
27127 try sema.addDeclaredHereNote(msg, field_ty);27127 try sema.addDeclaredHereNote(msg, field_ty);
27128 break :msg msg;27128 break :msg msg;
27129 };27129 };
27130 return sema.failWithOwnedErrorMsg(&block_scope, msg);27130 return sema.failWithOwnedErrorMsg(msg);
27131 }27131 }
27132 if (struct_obj.layout == .Extern and !sema.validateExternType(field.ty, .other)) {27132 if (struct_obj.layout == .Extern and !sema.validateExternType(field.ty, .other)) {
27133 const msg = msg: {27133 const msg = msg: {
...@@ -27141,7 +27141,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void...@@ -27141,7 +27141,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
27141 try sema.addDeclaredHereNote(msg, field.ty);27141 try sema.addDeclaredHereNote(msg, field.ty);
27142 break :msg msg;27142 break :msg msg;
27143 };27143 };
27144 return sema.failWithOwnedErrorMsg(&block_scope, msg);27144 return sema.failWithOwnedErrorMsg(msg);
27145 } else if (struct_obj.layout == .Packed and !(validatePackedType(field.ty))) {27145 } else if (struct_obj.layout == .Packed and !(validatePackedType(field.ty))) {
27146 const msg = msg: {27146 const msg = msg: {
27147 const tree = try sema.getAstTree(&block_scope);27147 const tree = try sema.getAstTree(&block_scope);
...@@ -27154,7 +27154,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void...@@ -27154,7 +27154,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
27154 try sema.addDeclaredHereNote(msg, field.ty);27154 try sema.addDeclaredHereNote(msg, field.ty);
27155 break :msg msg;27155 break :msg msg;
27156 };27156 };
27157 return sema.failWithOwnedErrorMsg(&block_scope, msg);27157 return sema.failWithOwnedErrorMsg(msg);
27158 }27158 }
2715927159
27160 if (zir_field.align_body_len > 0) {27160 if (zir_field.align_body_len > 0) {
...@@ -27436,7 +27436,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {...@@ -27436,7 +27436,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
27436 try sema.errNote(&block_scope, src, msg, "union declared here", .{});27436 try sema.errNote(&block_scope, src, msg, "union declared here", .{});
27437 break :msg msg;27437 break :msg msg;
27438 };27438 };
27439 return sema.failWithOwnedErrorMsg(&block_scope, msg);27439 return sema.failWithOwnedErrorMsg(msg);
27440 }27440 }
2744127441
27442 if (tag_ty_field_names) |*names| {27442 if (tag_ty_field_names) |*names| {
...@@ -27450,7 +27450,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {...@@ -27450,7 +27450,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
27450 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);27450 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);
27451 break :msg msg;27451 break :msg msg;
27452 };27452 };
27453 return sema.failWithOwnedErrorMsg(&block_scope, msg);27453 return sema.failWithOwnedErrorMsg(msg);
27454 }27454 }
27455 }27455 }
2745627456
...@@ -27464,7 +27464,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {...@@ -27464,7 +27464,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
27464 try sema.addDeclaredHereNote(msg, field_ty);27464 try sema.addDeclaredHereNote(msg, field_ty);
27465 break :msg msg;27465 break :msg msg;
27466 };27466 };
27467 return sema.failWithOwnedErrorMsg(&block_scope, msg);27467 return sema.failWithOwnedErrorMsg(msg);
27468 }27468 }
27469 if (union_obj.layout == .Extern and !sema.validateExternType(field_ty, .union_field)) {27469 if (union_obj.layout == .Extern and !sema.validateExternType(field_ty, .union_field)) {
27470 const msg = msg: {27470 const msg = msg: {
...@@ -27478,7 +27478,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {...@@ -27478,7 +27478,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
27478 try sema.addDeclaredHereNote(msg, field_ty);27478 try sema.addDeclaredHereNote(msg, field_ty);
27479 break :msg msg;27479 break :msg msg;
27480 };27480 };
27481 return sema.failWithOwnedErrorMsg(&block_scope, msg);27481 return sema.failWithOwnedErrorMsg(msg);
27482 } else if (union_obj.layout == .Packed and !(validatePackedType(field_ty))) {27482 } else if (union_obj.layout == .Packed and !(validatePackedType(field_ty))) {
27483 const msg = msg: {27483 const msg = msg: {
27484 const tree = try sema.getAstTree(&block_scope);27484 const tree = try sema.getAstTree(&block_scope);
...@@ -27491,7 +27491,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {...@@ -27491,7 +27491,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
27491 try sema.addDeclaredHereNote(msg, field_ty);27491 try sema.addDeclaredHereNote(msg, field_ty);
27492 break :msg msg;27492 break :msg msg;
27493 };27493 };
27494 return sema.failWithOwnedErrorMsg(&block_scope, msg);27494 return sema.failWithOwnedErrorMsg(msg);
27495 }27495 }
2749627496
27497 gop.value_ptr.* = .{27497 gop.value_ptr.* = .{
...@@ -27523,7 +27523,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {...@@ -27523,7 +27523,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
27523 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);27523 try sema.addDeclaredHereNote(msg, union_obj.tag_ty);
27524 break :msg msg;27524 break :msg msg;
27525 };27525 };
27526 return sema.failWithOwnedErrorMsg(&block_scope, msg);27526 return sema.failWithOwnedErrorMsg(msg);
27527 }27527 }
27528 }27528 }
27529}27529}