mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Do not build Swift interface files into binary modules when performing a canImport query.
We should hold off actually building the binary module file until it is imported. `canImport` queries can happen, for example, during dependency scanning, when we do not wish to have the scanner tool execute any module builds. Resolves rdar://82603098
This commit is contained in:
@@ -139,7 +139,8 @@ class ExplicitSwiftModuleLoader: public SerializedModuleLoaderBase {
|
||||
std::unique_ptr<llvm::MemoryBuffer> *moduleBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *moduleDocBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *moduleSourceInfoBuffer,
|
||||
bool &isFramework, bool &isSystemModule) override;
|
||||
bool skipBuildingInterface, bool &isFramework,
|
||||
bool &isSystemModule) override;
|
||||
|
||||
std::error_code findModuleFilesInDirectory(
|
||||
ImportPath::Element ModuleID,
|
||||
@@ -148,7 +149,7 @@ class ExplicitSwiftModuleLoader: public SerializedModuleLoaderBase {
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleDocBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleSourceInfoBuffer,
|
||||
bool IsFramework) override;
|
||||
bool skipBuildingInterface, bool IsFramework) override;
|
||||
|
||||
bool canImportModule(ImportPath::Element mID, llvm::VersionTuple version,
|
||||
bool underlyingVersion) override;
|
||||
@@ -400,7 +401,7 @@ class ModuleInterfaceLoader : public SerializedModuleLoaderBase {
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleDocBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleSourceInfoBuffer,
|
||||
bool IsFramework) override;
|
||||
bool skipBuildingInterface, bool IsFramework) override;
|
||||
|
||||
bool isCached(StringRef DepPath) override;
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user