Sema: mark transitive failure when @import refers to a failed file

This commit is contained in:
mlugg 2023-09-21 23:33:04 +01:00 committed by Andrew Kelley
parent 55bc8a7fa9
commit edfada4317

View File

@ -5800,9 +5800,7 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr
try mod.semaFile(result.file);
const file_root_decl_index = result.file.root_decl.unwrap().?;
const file_root_decl = mod.declPtr(file_root_decl_index);
try mod.declareDeclDependency(sema.owner_decl_index, file_root_decl_index);
return Air.internedToRef(file_root_decl.val.toIntern());
return sema.analyzeDeclVal(parent_block, src, file_root_decl_index);
}
fn zirSuspendBlock(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {
@ -13036,9 +13034,7 @@ fn zirImport(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.
};
try mod.semaFile(result.file);
const file_root_decl_index = result.file.root_decl.unwrap().?;
const file_root_decl = mod.declPtr(file_root_decl_index);
try mod.declareDeclDependency(sema.owner_decl_index, file_root_decl_index);
return Air.internedToRef(file_root_decl.val.toIntern());
return sema.analyzeDeclVal(block, operand_src, file_root_decl_index);
}
fn zirEmbedFile(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {