mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Serialization] Load indirect package dependencies from the current package
When loading a swiftmodule A, read its package information to tell if the current client should load A's dependencies imports by a package import. Only clients belonging to the same package as A should load those dependencies, clients outside of the package likely don't have access to those dependencies. This is specific to swiftmodules as swiftinterfaces never display a package-only import. Clients are unaware of package dependencies when building against a swiftinterface. rdar://106164813
This commit is contained in:
@@ -426,6 +426,10 @@ llvm::ErrorOr<ModuleDependencyInfo> SerializedModuleLoaderBase::scanModuleFile(
|
||||
if (dependency.isImplementationOnly())
|
||||
continue;
|
||||
|
||||
if (dependency.isPackageOnly() &&
|
||||
Ctx.LangOpts.PackageName != loadedModuleFile->getModulePackageName())
|
||||
continue;
|
||||
|
||||
// Find the top-level module name.
|
||||
auto modulePathStr = dependency.getPrettyPrintedPath();
|
||||
StringRef moduleName = modulePathStr;
|
||||
|
||||
Reference in New Issue
Block a user