stage2: omit Decl compile errors from failed AstGen files

Just like when new parse errors occur during an update, when new AstGen
errors occur during an update, we do not reveal compile errors for Decl
objects which are inside of a newly failed File. Once the File passes
AstGen successfully, it will be compared with the previously succeeded
ZIR and the saved Decl compile errors will be handled properly.
This commit is contained in:
Andrew Kelley
2021-05-15 21:20:06 -07:00
parent dc036f5b6f
commit 7cd94d2123
3 changed files with 22 additions and 20 deletions

View File

@@ -1225,7 +1225,7 @@ pub fn addCases(ctx: *TestContext) !void {
{
var case = ctx.obj("variable shadowing", linux_x64);
case.addError(
\\pub export fn _start() noreturn {
\\export fn _start() noreturn {
\\ var i: u32 = 10;
\\ var i: u32 = 10;
\\ unreachable;
@@ -1251,7 +1251,7 @@ pub fn addCases(ctx: *TestContext) !void {
var case = ctx.obj("@compileLog", linux_x64);
// The other compile error prevents emission of a "found compile log" statement.
case.addError(
\\pub export fn _start() noreturn {
\\export fn _start() noreturn {
\\ const b = true;
\\ var f: u32 = 1;
\\ @compileLog(b, 20, f, x);
@@ -1293,10 +1293,9 @@ pub fn addCases(ctx: *TestContext) !void {
\\ _ = foo;
\\}
\\extern var foo: i32;
\\pub export fn _start() void {}
, &[_][]const u8{":2:9: error: unable to resolve comptime value"});
case.addError(
\\pub export fn _start() void {
\\export fn entry() void {
\\ _ = foo;
\\}
\\extern var foo;