aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-01-15 22:59:33 -0800
committerGitHub <noreply@github.com>2024-01-15 22:59:33 -0800
commitca8c6dd4d65abaadaf0633f4a72e5c0ed79b3c53 (patch)
treefdc360285a385f966f16fb5530d6e8a5e3fda58f /src
parentfcc94f54317f12fadffb7822cb4478f49e4045a1 (diff)
parenta219c9faaa7622910d3472853ab648581174aeb4 (diff)
downloadzig-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.zig58
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)) {