diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2024-01-15 22:59:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-15 22:59:33 -0800 |
| commit | ca8c6dd4d65abaadaf0633f4a72e5c0ed79b3c53 (patch) | |
| tree | fdc360285a385f966f16fb5530d6e8a5e3fda58f /src | |
| parent | fcc94f54317f12fadffb7822cb4478f49e4045a1 (diff) | |
| parent | a219c9faaa7622910d3472853ab648581174aeb4 (diff) | |
| download | zig-ca8c6dd4d65abaadaf0633f4a72e5c0ed79b3c53.tar.gz zig-ca8c6dd4d65abaadaf0633f4a72e5c0ed79b3c53.zip | |
Merge pull request #18569 from dweiller/17944-followup
17944 followup
Diffstat (limited to 'src')
| -rw-r--r-- | src/Sema.zig | 58 |
1 files changed, 33 insertions, 25 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 7a73b52e83..2a30247108 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -28662,7 +28662,7 @@ fn coerceExtra( if (!dest_info.flags.is_const) { const err_msg = err_msg: { const err_msg = try sema.errMsg(block, inst_src, "cannot cast pointer to tuple to '{}'", .{dest_ty.fmt(mod)}); - errdefer err_msg.deinit(sema.gpa); + errdefer err_msg.destroy(sema.gpa); try sema.errNote(block, dest_ty_src, err_msg, "pointers to tuples can only coerce to constant pointers", .{}); break :err_msg err_msg; }; @@ -32604,31 +32604,39 @@ fn analyzeSlice( if (try sema.compareScalar(start_value, .neq, end_value, Type.comptime_int)) { if (try sema.compareScalar(start_value, .neq, Value.zero_comptime_int, Type.comptime_int)) { - const err_msg = try sema.errMsg(block, start_src, bounds_error_message, .{}); - try sema.errNote( - block, - start_src, - err_msg, - "expected '{}', found '{}'", - .{ - Value.zero_comptime_int.fmtValue(Type.comptime_int, mod), - start_value.fmtValue(Type.comptime_int, mod), - }, - ); - return sema.failWithOwnedErrorMsg(block, err_msg); + const msg = msg: { + const msg = try sema.errMsg(block, start_src, bounds_error_message, .{}); + errdefer msg.destroy(sema.gpa); + try sema.errNote( + block, + start_src, + msg, + "expected '{}', found '{}'", + .{ + Value.zero_comptime_int.fmtValue(Type.comptime_int, mod), + start_value.fmtValue(Type.comptime_int, mod), + }, + ); + break :msg msg; + }; + return sema.failWithOwnedErrorMsg(block, msg); } else if (try sema.compareScalar(end_value, .neq, Value.one_comptime_int, Type.comptime_int)) { - const err_msg = try sema.errMsg(block, end_src, bounds_error_message, .{}); - try sema.errNote( - block, - end_src, - err_msg, - "expected '{}', found '{}'", - .{ - Value.one_comptime_int.fmtValue(Type.comptime_int, mod), - end_value.fmtValue(Type.comptime_int, mod), - }, - ); - return sema.failWithOwnedErrorMsg(block, err_msg); + const msg = msg: { + const msg = try sema.errMsg(block, end_src, bounds_error_message, .{}); + errdefer msg.destroy(sema.gpa); + try sema.errNote( + block, + end_src, + msg, + "expected '{}', found '{}'", + .{ + Value.one_comptime_int.fmtValue(Type.comptime_int, mod), + end_value.fmtValue(Type.comptime_int, mod), + }, + ); + break :msg msg; + }; + return sema.failWithOwnedErrorMsg(block, msg); } } else { if (try sema.compareScalar(end_value, .gt, Value.one_comptime_int, Type.comptime_int)) { |
