Remove FailedImportModule. A failed import is now represented as an empty TU.

No other functionality change.

Swift SVN r10833
This commit is contained in:
Jordan Rose
2013-12-05 01:51:10 +00:00
parent 8b8cc8ee62
commit 68272b15c4
3 changed files with 21 additions and 60 deletions

View File

@@ -27,20 +27,6 @@ class ModuleFile;
/// \brief Imports serialized Swift modules into an ASTContext.
class SerializedModuleLoader : public ModuleLoader {
private:
/// This is only used to pass as owner of FailedImportModules so that the
/// rest of SerializedModuleLoader can assume that it is receiving valid
/// modules.
class FailedImportModuleLoader : public ModuleLoader {
Module *loadModule(SourceLoc importLoc,
ArrayRef<std::pair<Identifier, SourceLoc>> path) override {
return nullptr;
}
StringRef getModuleFilename(const Module *Module) override;
};
FailedImportModuleLoader FailedImportLoader;
ASTContext &Ctx;
std::map<std::string, std::unique_ptr<llvm::MemoryBuffer> > MemoryBuffers;
/// A { module, generation # } pair.
@@ -108,28 +94,6 @@ enum class ModuleStatus {
Malformed
};
/// Represents a module that failed to get imported.
class FailedImportModule : public LoadedModule {
public:
const ModuleStatus Status;
std::string ModuleFilename;
FailedImportModule(Identifier Name, ModuleStatus Status,
StringRef ModuleFilename,
ASTContext &Ctx, ModuleLoader &Owner)
: LoadedModule(ModuleKind::FailedImport, Name, {}, Ctx, Owner),
Status(Status) {
assert(Status != ModuleStatus::Valid && "module is valid ?");
}
static bool classof(const Module *M) {
return M->getKind() == ModuleKind::FailedImport;
}
static bool classof(const DeclContext *DC) {
return isa<Module>(DC) && classof(cast<Module>(DC));
}
};
} // end namespace swift
#endif