@@ -1163,6 +1163,13 @@ void SourceFile::lookupPrecedenceGroupDirect(
1163
1163
1164
1164
void ModuleDecl::getImportedModules (SmallVectorImpl<ImportedModule> &modules,
1165
1165
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
+
1166
1173
FORWARD (getImportedModules, (modules, filter));
1167
1174
}
1168
1175
@@ -1184,16 +1191,17 @@ SourceFile::getImportedModules(SmallVectorImpl<ModuleDecl::ImportedModule> &modu
1184
1191
for (auto desc : *Imports) {
1185
1192
ModuleDecl::ImportFilter requiredFilter;
1186
1193
if (desc.importOptions .contains (ImportFlags::Exported))
1187
- requiredFilter |= ModuleDecl::ImportFilterKind::Public ;
1194
+ requiredFilter |= ModuleDecl::ImportFilterKind::Exported ;
1188
1195
else if (desc.importOptions .contains (ImportFlags::ImplementationOnly))
1189
1196
requiredFilter |= ModuleDecl::ImportFilterKind::ImplementationOnly;
1190
- else if (desc.importOptions .contains (ImportFlags::SPIAccessControl))
1191
- requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
1192
1197
else
1193
- requiredFilter |= ModuleDecl::ImportFilterKind::Private;
1198
+ requiredFilter |= ModuleDecl::ImportFilterKind::Default;
1199
+
1200
+ if (desc.importOptions .contains (ImportFlags::SPIAccessControl))
1201
+ requiredFilter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
1194
1202
1195
1203
if (!separatelyImportedOverlays.lookup (desc.module .importedModule ).empty ())
1196
- requiredFilter |= ModuleDecl::ImportFilterKind::ShadowedBySeparateOverlay ;
1204
+ requiredFilter |= ModuleDecl::ImportFilterKind::ShadowedByCrossImportOverlay ;
1197
1205
1198
1206
if (filter.contains (requiredFilter))
1199
1207
modules.push_back (desc.module );
@@ -1445,8 +1453,8 @@ SourceFile::collectLinkLibraries(ModuleDecl::LinkLibraryCallback callback) const
1445
1453
SmallVector<ModuleDecl::ImportedModule, 32 > stack;
1446
1454
1447
1455
ModuleDecl::ImportFilter filter = {
1448
- ModuleDecl::ImportFilterKind::Public ,
1449
- ModuleDecl::ImportFilterKind::Private ,
1456
+ ModuleDecl::ImportFilterKind::Exported ,
1457
+ ModuleDecl::ImportFilterKind::Default ,
1450
1458
ModuleDecl::ImportFilterKind::SPIAccessControl};
1451
1459
1452
1460
auto *topLevel = getParentModule ();
@@ -1680,7 +1688,7 @@ ModuleDecl::getDeclaringModuleAndBystander() {
1680
1688
SmallVector<ModuleDecl::ImportedModule, 16 > furtherImported;
1681
1689
ModuleDecl *overlayModule = this ;
1682
1690
1683
- getImportedModules (imported, ModuleDecl::ImportFilterKind::Public );
1691
+ getImportedModules (imported, ModuleDecl::ImportFilterKind::Exported );
1684
1692
while (!imported.empty ()) {
1685
1693
ModuleDecl *importedModule = imported.back ().importedModule ;
1686
1694
imported.pop_back ();
@@ -1706,7 +1714,7 @@ ModuleDecl::getDeclaringModuleAndBystander() {
1706
1714
1707
1715
furtherImported.clear ();
1708
1716
importedModule->getImportedModules (furtherImported,
1709
- ModuleDecl::ImportFilterKind::Public );
1717
+ ModuleDecl::ImportFilterKind::Exported );
1710
1718
imported.append (furtherImported.begin (), furtherImported.end ());
1711
1719
}
1712
1720
@@ -1988,10 +1996,10 @@ bool ModuleDecl::isImportedImplementationOnly(const ModuleDecl *module) const {
1988
1996
// Look through non-implementation-only imports to see if module is imported
1989
1997
// in some other way. Otherwise we assume it's implementation-only imported.
1990
1998
ModuleDecl::ImportFilter filter = {
1991
- ModuleDecl::ImportFilterKind::Public ,
1992
- ModuleDecl::ImportFilterKind::Private ,
1999
+ ModuleDecl::ImportFilterKind::Exported ,
2000
+ ModuleDecl::ImportFilterKind::Default ,
1993
2001
ModuleDecl::ImportFilterKind::SPIAccessControl,
1994
- ModuleDecl::ImportFilterKind::ShadowedBySeparateOverlay };
2002
+ ModuleDecl::ImportFilterKind::ShadowedByCrossImportOverlay };
1995
2003
SmallVector<ModuleDecl::ImportedModule, 4 > results;
1996
2004
getImportedModules (results, filter);
1997
2005
0 commit comments