Extends canImport to check for submodule availability

This commit is contained in:
ApolloZhu
2021-07-05 22:13:37 -04:00
committed by Apollo Zhu
parent d1bb98b11e
commit 683d469fcd
24 changed files with 294 additions and 51 deletions

View File

@@ -1123,8 +1123,9 @@ swift::extractUserModuleVersionFromInterface(StringRef moduleInterfacePath) {
return result;
}
bool SerializedModuleLoaderBase::canImportModule(
ImportPath::Element mID, llvm::VersionTuple version, bool underlyingVersion) {
bool SerializedModuleLoaderBase::canImportModule(ImportPath::Module path,
llvm::VersionTuple version,
bool underlyingVersion) {
// If underlying version is specified, this should be handled by Clang importer.
if (!version.empty() && underlyingVersion)
return false;
@@ -1145,6 +1146,8 @@ bool SerializedModuleLoaderBase::canImportModule(
unusedModuleDocBuffer = &moduleDocBuffer;
}
// FIXME: Swift submodules?
auto mID = path[0];
auto found = findModule(mID, unusedModuleInterfacePath, unusedModuleBuffer,
unusedModuleDocBuffer, unusedModuleSourceInfoBuffer,
/* skipBuildingInterface */ true, isFramework,
@@ -1180,10 +1183,13 @@ bool SerializedModuleLoaderBase::canImportModule(
}
bool MemoryBufferSerializedModuleLoader::canImportModule(
ImportPath::Element mID, llvm::VersionTuple version, bool underlyingVersion) {
ImportPath::Module path, llvm::VersionTuple version,
bool underlyingVersion) {
// If underlying version is specified, this should be handled by Clang importer.
if (!version.empty() && underlyingVersion)
return false;
// FIXME: Swift submodules?
auto mID = path[0];
auto mIt = MemoryBuffers.find(mID.Item.str());
if (mIt == MemoryBuffers.end())
return false;