@@ -1163,6 +1163,13 @@ void SourceFile::lookupPrecedenceGroupDirect(
11631163
11641164void ModuleDecl::getImportedModules (SmallVectorImpl<ImportedModule> &modules,
11651165 ModuleDecl::ImportFilter filter) const {
1166+ assert (filter.containsAny (ImportFilter ({
1167+ ModuleDecl::ImportFilterKind::Exported,
1168+ ModuleDecl::ImportFilterKind::Default,
1169+ ModuleDecl::ImportFilterKind::ImplementationOnly}))
1170+ && " filter should have at least one of Exported|Private|ImplementationOnly"
1171+ );
1172+
11661173 FORWARD (getImportedModules, (modules, filter));
11671174}
11681175
@@ -1184,16 +1191,17 @@ SourceFile::getImportedModules(SmallVectorImpl<ModuleDecl::ImportedModule> &modu
11841191 for (auto desc : *Imports) {
11851192 ModuleDecl::ImportFilter requiredFilter;
11861193 if (desc.importOptions .contains (ImportFlags::Exported))
1187- requiredFilter |= ModuleDecl::ImportFilterKind::Public ;
1194+ requiredFilter |= ModuleDecl::ImportFilterKind::Exported ;
11881195 else if (desc.importOptions .contains (ImportFlags::ImplementationOnly))
11891196 requiredFilter |= ModuleDecl::ImportFilterKind::ImplementationOnly;
1190- else if (desc.importOptions .contains (ImportFlags::SPIAccessControl))
1191- requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
11921197 else
1193- requiredFilter |= ModuleDecl::ImportFilterKind::Private;
1198+ requiredFilter |= ModuleDecl::ImportFilterKind::Default;
1199+
1200+ if (desc.importOptions .contains (ImportFlags::SPIAccessControl))
1201+ requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
11941202
11951203 if (!separatelyImportedOverlays.lookup (desc.module .importedModule ).empty ())
1196- requiredFilter |= ModuleDecl::ImportFilterKind::ShadowedBySeparateOverlay ;
1204+ requiredFilter |= ModuleDecl::ImportFilterKind::ShadowedByCrossImportOverlay ;
11971205
11981206 if (filter.contains (requiredFilter))
11991207 modules.push_back (desc.module );
@@ -1445,8 +1453,8 @@ SourceFile::collectLinkLibraries(ModuleDecl::LinkLibraryCallback callback) const
14451453 SmallVector<ModuleDecl::ImportedModule, 32 > stack;
14461454
14471455 ModuleDecl::ImportFilter filter = {
1448- ModuleDecl::ImportFilterKind::Public ,
1449- ModuleDecl::ImportFilterKind::Private ,
1456+ ModuleDecl::ImportFilterKind::Exported ,
1457+ ModuleDecl::ImportFilterKind::Default ,
14501458 ModuleDecl::ImportFilterKind::SPIAccessControl};
14511459
14521460 auto *topLevel = getParentModule ();
@@ -1680,7 +1688,7 @@ ModuleDecl::getDeclaringModuleAndBystander() {
16801688 SmallVector<ModuleDecl::ImportedModule, 16 > furtherImported;
16811689 ModuleDecl *overlayModule = this ;
16821690
1683- getImportedModules (imported, ModuleDecl::ImportFilterKind::Public );
1691+ getImportedModules (imported, ModuleDecl::ImportFilterKind::Exported );
16841692 while (!imported.empty ()) {
16851693 ModuleDecl *importedModule = imported.back ().importedModule ;
16861694 imported.pop_back ();
@@ -1706,7 +1714,7 @@ ModuleDecl::getDeclaringModuleAndBystander() {
17061714
17071715 furtherImported.clear ();
17081716 importedModule->getImportedModules (furtherImported,
1709- ModuleDecl::ImportFilterKind::Public );
1717+ ModuleDecl::ImportFilterKind::Exported );
17101718 imported.append (furtherImported.begin (), furtherImported.end ());
17111719 }
17121720
@@ -1988,10 +1996,10 @@ bool ModuleDecl::isImportedImplementationOnly(const ModuleDecl *module) const {
19881996 // Look through non-implementation-only imports to see if module is imported
19891997 // in some other way. Otherwise we assume it's implementation-only imported.
19901998 ModuleDecl::ImportFilter filter = {
1991- ModuleDecl::ImportFilterKind::Public ,
1992- ModuleDecl::ImportFilterKind::Private ,
1999+ ModuleDecl::ImportFilterKind::Exported ,
2000+ ModuleDecl::ImportFilterKind::Default ,
19932001 ModuleDecl::ImportFilterKind::SPIAccessControl,
1994- ModuleDecl::ImportFilterKind::ShadowedBySeparateOverlay };
2002+ ModuleDecl::ImportFilterKind::ShadowedByCrossImportOverlay };
19952003 SmallVector<ModuleDecl::ImportedModule, 4 > results;
19962004 getImportedModules (results, filter);
19972005
0 commit comments