@@ -1902,12 +1902,12 @@ SourceFile::getImportedModules(SmallVectorImpl<ImportedModule> &modules,
19021902 if (desc.options .contains (ImportFlags::Exported))
19031903 requiredFilter |= ModuleDecl::ImportFilterKind::Exported;
19041904 else if (desc.options .contains (ImportFlags::ImplementationOnly) ||
1905- (desc.accessLevel <= AccessLevel::Package && moduleIsResilient))
1905+ (desc.accessLevel <= AccessLevel::Internal && moduleIsResilient))
19061906 requiredFilter |= ModuleDecl::ImportFilterKind::ImplementationOnly;
1907+ else if (desc.accessLevel <= AccessLevel::Package && moduleIsResilient)
1908+ requiredFilter |= ModuleDecl::ImportFilterKind::PackageOnly;
19071909 else if (desc.options .contains (ImportFlags::SPIOnly))
19081910 requiredFilter |= ModuleDecl::ImportFilterKind::SPIOnly;
1909- else if (desc.options .contains (ImportFlags::SPIAccessControl))
1910- requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
19111911 else
19121912 requiredFilter |= ModuleDecl::ImportFilterKind::Default;
19131913
@@ -2271,13 +2271,13 @@ SourceFile::collectLinkLibraries(ModuleDecl::LinkLibraryCallback callback) const
22712271
22722272 ModuleDecl::ImportFilter filter = {
22732273 ModuleDecl::ImportFilterKind::Exported,
2274- ModuleDecl::ImportFilterKind::Default,
2275- ModuleDecl::ImportFilterKind::SPIAccessControl};
2274+ ModuleDecl::ImportFilterKind::Default};
22762275
22772276 auto *topLevel = getParentModule ();
22782277
22792278 ModuleDecl::ImportFilter topLevelFilter = filter;
22802279 topLevelFilter |= ModuleDecl::ImportFilterKind::ImplementationOnly;
2280+ topLevelFilter |= ModuleDecl::ImportFilterKind::PackageOnly,
22812281 topLevelFilter |= ModuleDecl::ImportFilterKind::SPIOnly;
22822282 topLevel->getImportedModules (stack, topLevelFilter);
22832283
@@ -2985,7 +2985,8 @@ bool ModuleDecl::isImportedImplementationOnly(const ModuleDecl *module) const {
29852985 ModuleDecl::ImportFilter filter = {
29862986 ModuleDecl::ImportFilterKind::Exported,
29872987 ModuleDecl::ImportFilterKind::Default,
2988- ModuleDecl::ImportFilterKind::SPIAccessControl,
2988+ ModuleDecl::ImportFilterKind::PackageOnly,
2989+ ModuleDecl::ImportFilterKind::SPIOnly,
29892990 ModuleDecl::ImportFilterKind::ShadowedByCrossImportOverlay};
29902991 SmallVector<ImportedModule, 4 > results;
29912992 getImportedModules (results, filter);
@@ -3008,11 +3009,11 @@ canBeUsedForCrossModuleOptimization(DeclContext *ctxt) const {
30083009 return true ;
30093010
30103011 // See if context is imported in a "regular" way, i.e. not with
3011- // @_implementationOnly or @_spi .
3012+ // @_implementationOnly, `package import` or @_spiOnly .
30123013 ModuleDecl::ImportFilter filter = {
30133014 ModuleDecl::ImportFilterKind::ImplementationOnly,
3014- ModuleDecl::ImportFilterKind::SPIOnly ,
3015- ModuleDecl::ImportFilterKind::SPIAccessControl
3015+ ModuleDecl::ImportFilterKind::PackageOnly ,
3016+ ModuleDecl::ImportFilterKind::SPIOnly
30163017 };
30173018 SmallVector<ImportedModule, 4 > results;
30183019 getImportedModules (results, filter);
0 commit comments