diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-11-20 13:58:37 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-11-20 20:25:12 +0200 |
| commit | 9e276d32f3f8d980e4bf4c0a52df0fa97717aacb (patch) | |
| tree | 05842a5d8694e59538d164771ddab648bcd898d8 /src/Sema.zig | |
| parent | 9e7293619ffb26049af2248226a3d75ef274bfb0 (diff) | |
| download | zig-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.zig | 9 |
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); } |
