| ... | @@ -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 means | 74 | /// Sema must convert comptime control flow to runtime control flow, which means |
| 75 | /// breaking from a block. | 75 | /// breaking from a block. |
| 76 | post_hoc_blocks: std.AutoHashMapUnmanaged(Air.Inst.Index, *LabeledBlock) = .{}, | 76 | post_hoc_blocks: std.AutoHashMapUnmanaged(Air.Inst.Index, *LabeledBlock) = .{}, |
| | 77 | /// Populated with the last compile error created. |
| | 78 | err: ?*Module.ErrorMsg = null, |
| 77 | | 79 | |
| 78 | const std = @import("std"); | 80 | const std = @import("std"); |
| 79 | const mem = std.mem; | 81 | const 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 | }; |
| 179 | | 180 | |
| 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 | } |
| 1743 | | 1744 | |
| 1744 | fn failWithUseOfUndef(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError { | 1745 | fn 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 | } |
| 1775 | | 1776 | |
| 1776 | fn failWithStructInitNotSupported(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) CompileError { | 1777 | fn 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 | } |
| 1828 | | 1829 | |
| 1829 | /// We don't return a pointer to the new error note because the pointer | 1830 | /// 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 | } |
| 1883 | | 1884 | |
| 1884 | fn failWithOwnedErrorMsg(sema: *Sema, block: *Block, err_msg: *Module.ErrorMsg) CompileError { | 1885 | fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError { |
| 1885 | @setCold(true); | 1886 | @setCold(true); |
| 1886 | | 1887 | |
| 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 | } |
| 1895 | | 1896 | |
| 1896 | const mod = sema.mod; | 1897 | const mod = sema.mod; |
| 1897 | if (block.inlining) |some| some.err = err_msg; | 1898 | sema.err = err_msg; |
| 1898 | | 1899 | |
| 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 | } |
| 2596 | | 2597 | |
| 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 | } |
| 2962 | | 2963 | |
| 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 | } |
| 3620 | | 3621 | |
| 3621 | if ((is_comptime or block.is_comptime) and | 3622 | 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 | } |
| 3813 | | 3814 | |
| 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 | } |
| 3943 | | 3944 | |
| 3944 | if (struct_is_comptime) { | 3945 | if (struct_is_comptime) { |
| ... | @@ -4000,7 +4001,7 @@ fn zirValidateArrayInit( | ... | @@ -4000,7 +4001,7 @@ fn zirValidateArrayInit( |
| 4000 | } | 4001 | } |
| 4001 | | 4002 | |
| 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 | } |
| 4006 | | 4007 | |
| ... | @@ -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 | } |
| 4186 | | 4187 | |
| ... | @@ -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 | } |
| 4211 | | 4212 | |
| 4212 | fn failWithBadStructFieldAccess( | 4213 | fn 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 | } |
| 4237 | | 4238 | |
| 4238 | fn failWithBadUnionFieldAccess( | 4239 | fn 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 | } |
| 4263 | | 4264 | |
| 4264 | fn addDeclaredHereNote(sema: *Sema, parent: *Module.ErrorMsg, decl_ty: Type) !void { | 4265 | fn 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( |
| 4921 | | 4922 | |
| 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 | } |
| 5065 | | 5066 | |
| 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 | } |
| 7652 | | 7652 | |
| 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 | } |
| 7861 | | 7861 | |
| ... | @@ -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 |
| 8318 | | 8318 | |
| 8319 | break :msg msg; | 8319 | break :msg msg; |
| 8320 | }; | 8320 | }; |
| 8321 | return sema.failWithOwnedErrorMsg(block, msg); | 8321 | return sema.failWithOwnedErrorMsg(msg); |
| 8322 | }, | 8322 | }, |
| 8323 | | 8323 | |
| 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 |
| 8333 | | 8333 | |
| 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 |
| 8383 | | 8383 | |
| 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 |
| 8397 | | 8397 | |
| 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 | } |
| 8669 | | 8669 | |
| ... | @@ -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 | } |
| 8880 | | 8880 | |
| 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 | } |
| 9084 | | 9084 | |
| 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 | } |
| 9893 | | 9893 | |
| 9894 | fn validateSwitchItemBool( | 9894 | fn 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 | } |
| 9963 | | 9963 | |
| 9964 | fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { | 9964 | fn 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 the | 12887 | // 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" note | 13170 | // 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 | } |
| 13175 | | 13175 | |
| 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 | } |
| 15224 | | 15224 | |
| 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); |
| 15300 | | 15300 | |
| ... | @@ -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 location | 15315 | 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 | } |
| 16400 | | 16400 | |
| ... | @@ -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 | } |
| 16434 | | 16434 | |
| ... | @@ -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 | } |
| 16903 | | 16903 | |
| 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 | } |
| 16922 | | 16922 | |
| ... | @@ -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 | } |
| 17060 | | 17060 | |
| ... | @@ -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 | } |
| 17351 | | 17351 | |
| ... | @@ -17449,7 +17449,7 @@ fn checkPtrOperand( | ... | @@ -17449,7 +17449,7 @@ fn checkPtrOperand( |
| 17449 | | 17449 | |
| 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( |
| 17479 | | 17479 | |
| 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 | } |
| 17784 | | 17784 | |
| ... | @@ -18178,7 +18178,7 @@ fn analyzeShuffle( | ... | @@ -18178,7 +18178,7 @@ fn analyzeShuffle( |
| 18178 | | 18178 | |
| 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 | } |
| 18184 | | 18184 | |
| ... | @@ -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( |
| 19603 | | 19603 | |
| 19604 | break :msg msg; | 19604 | break :msg msg; |
| 19605 | }; | 19605 | }; |
| 19606 | return sema.failWithOwnedErrorMsg(block, msg); | 19606 | return sema.failWithOwnedErrorMsg(msg); |
| 19607 | } | 19607 | } |
| 19608 | | 19608 | |
| 19609 | fn validateRunTimeType( | 19609 | fn 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 | } |
| 20311 | | 20311 | |
| ... | @@ -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; |
| 20418 | | 20418 | |
| 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 | } |
| 20811 | | 20811 | |
| 20812 | fn finishFieldCallBind( | 20812 | fn 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( |
| 21438 | | 21438 | |
| 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 | } |
| 21444 | | 21444 | |
| ... | @@ -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 | } |
| 22347 | | 22347 | |
| 22348 | const msg = msg: { | 22348 | const msg = msg: { |
| ... | @@ -22383,7 +22383,7 @@ fn coerceExtra( | ... | @@ -22383,7 +22383,7 @@ fn coerceExtra( |
| 22383 | | 22383 | |
| 22384 | break :msg msg; | 22384 | break :msg msg; |
| 22385 | }; | 22385 | }; |
| 22386 | return sema.failWithOwnedErrorMsg(block, msg); | 22386 | return sema.failWithOwnedErrorMsg(msg); |
| 22387 | } | 22387 | } |
| 22388 | | 22388 | |
| 22389 | const InMemoryCoercionResult = union(enum) { | 22389 | const 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 | }; |
| 24453 | | 24453 | |
| 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 | }; |
| 24484 | | 24484 | |
| 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 | } |
| 24504 | | 24504 | |
| 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 | } |
| 24533 | | 24533 | |
| 24534 | fn coerceAnonStructToUnion( | 24534 | fn 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 | } |
| 24562 | | 24562 | |
| 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 | } |
| 24622 | | 24622 | |
| 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 | } |
| 24694 | | 24694 | |
| 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( |
| 24852 | | 24852 | |
| 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 | } |
| 24857 | | 24857 | |
| 24858 | if (runtime_src) |rs| { | 24858 | if (runtime_src) |rs| { |
| ... | @@ -24956,7 +24956,7 @@ fn coerceTupleToTuple( | ... | @@ -24956,7 +24956,7 @@ fn coerceTupleToTuple( |
| 24956 | | 24956 | |
| 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 | } |
| 24961 | | 24961 | |
| 24962 | if (runtime_src) |rs| { | 24962 | if (runtime_src) |rs| { |
| ... | @@ -25521,7 +25521,7 @@ fn analyzeSlice( | ... | @@ -25521,7 +25521,7 @@ fn analyzeSlice( |
| 25521 | | 25521 | |
| 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( |
| 26470 | | 26470 | |
| 26471 | break :msg msg; | 26471 | break :msg msg; |
| 26472 | }; | 26472 | }; |
| 26473 | return sema.failWithOwnedErrorMsg(block, msg); | 26473 | return sema.failWithOwnedErrorMsg(msg); |
| 26474 | } | 26474 | } |
| 26475 | | 26475 | |
| 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 | } |
| 27159 | | 27159 | |
| 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 | } |
| 27441 | | 27441 | |
| 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 | } |
| 27456 | | 27456 | |
| ... | @@ -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 | } |
| 27496 | | 27496 | |
| 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 | } |