aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-11-20 13:58:37 +0200
committerVeikka Tuominen <git@vexu.eu>2022-11-20 20:25:12 +0200
commit9e276d32f3f8d980e4bf4c0a52df0fa97717aacb (patch)
tree05842a5d8694e59538d164771ddab648bcd898d8 /src/Sema.zig
parent9e7293619ffb26049af2248226a3d75ef274bfb0 (diff)
downloadzig-9e276d32f3f8d980e4bf4c0a52df0fa97717aacb.tar.gz
zig-9e276d32f3f8d980e4bf4c0a52df0fa97717aacb.zip
Sema: fix memory management of missing field error
Closes #13590
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index ed8a44a966..a1c7fa7b91 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -4111,6 +4111,7 @@ fn validateStructInit(
.{fqn},
);
}
+ root_msg = null;
return sema.failWithOwnedErrorMsg(msg);
}
@@ -4230,7 +4231,6 @@ fn validateStructInit(
}
if (root_msg) |msg| {
- root_msg = null;
if (struct_ty.castTag(.@"struct")) |struct_obj| {
const fqn = try struct_obj.data.getFullyQualifiedName(sema.mod);
defer gpa.free(fqn);
@@ -4241,6 +4241,7 @@ fn validateStructInit(
.{fqn},
);
}
+ root_msg = null;
return sema.failWithOwnedErrorMsg(msg);
}
@@ -17098,7 +17099,6 @@ fn finishStructInit(
}
if (root_msg) |msg| {
- root_msg = null;
if (struct_ty.castTag(.@"struct")) |struct_obj| {
const fqn = try struct_obj.data.getFullyQualifiedName(sema.mod);
defer gpa.free(fqn);
@@ -17109,6 +17109,7 @@ fn finishStructInit(
.{fqn},
);
}
+ root_msg = null;
return sema.failWithOwnedErrorMsg(msg);
}
@@ -27225,8 +27226,8 @@ fn coerceTupleToStruct(
}
if (root_msg) |msg| {
- root_msg = null;
try sema.addDeclaredHereNote(msg, struct_ty);
+ root_msg = null;
return sema.failWithOwnedErrorMsg(msg);
}
@@ -27331,8 +27332,8 @@ fn coerceTupleToTuple(
}
if (root_msg) |msg| {
- root_msg = null;
try sema.addDeclaredHereNote(msg, tuple_ty);
+ root_msg = null;
return sema.failWithOwnedErrorMsg(msg);
}