Merge pull request #65337 from xymus/spi-only-dep

[Serialization] Write down SPI only dependencies as required in swiftmodules
This commit is contained in:
Alexis Laferrière
2023-04-20 22:00:37 -07:00
committed by GitHub
2 changed files with 44 additions and 3 deletions

View File

@@ -1219,8 +1219,9 @@ void Serializer::writeInputBlock(const SerializationOptions &options) {
// distinguish them.
ImportSet publicImportSet =
getImportsAsSet(M, ModuleDecl::ImportFilterKind::Exported);
ImportSet privateImportSet =
getImportsAsSet(M, ModuleDecl::ImportFilterKind::Default);
ImportSet defaultImportSet =
getImportsAsSet(M, {ModuleDecl::ImportFilterKind::Default,
ModuleDecl::ImportFilterKind::SPIOnly});
ImportSet packageOnlyImportSet =
getImportsAsSet(M, ModuleDecl::ImportFilterKind::PackageOnly);
ImportSet internalOrBelowImportSet =
@@ -1270,7 +1271,7 @@ void Serializer::writeInputBlock(const SerializationOptions &options) {
// form here.
if (publicImportSet.count(import))
stableImportControl = ImportControl::Exported;
else if (privateImportSet.count(import))
else if (defaultImportSet.count(import))
stableImportControl = ImportControl::Normal;
else if (packageOnlyImportSet.count(import))
stableImportControl = ImportControl::PackageOnly;