@@ -563,23 +563,6 @@ ModuleDependencyScanner::ModuleDependencyScanner(
563563 DependencyTracker, CAS, ActionCache, PrefixMapper.get (), Diagnostics));
564564}
565565
566- // / Find all of the imported Clang modules starting with the given module name.
567- static void findAllImportedClangModules (StringRef moduleName,
568- const ModuleDependenciesCache &cache,
569- llvm::StringSet<> &allModules) {
570- if (!allModules.insert (moduleName).second )
571- return ;
572-
573- auto moduleID =
574- ModuleDependencyID{moduleName.str (), ModuleDependencyKind::Clang};
575- auto optionalDependencies = cache.findDependency (moduleID);
576- if (!optionalDependencies.has_value ())
577- return ;
578-
579- for (const auto &dep : cache.getAllClangDependencies (moduleID))
580- findAllImportedClangModules (dep.ModuleName , cache, allModules);
581- }
582-
583566static std::set<ModuleDependencyID>
584567collectBinarySwiftDeps (const ModuleDependenciesCache &cache) {
585568 std::set<ModuleDependencyID> binarySwiftModuleDepIDs;
@@ -1467,11 +1450,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
14671450 ModuleDependencyIDSetVector &swiftOverlayDependencies) {
14681451 PrettyStackTraceStringAction trace (
14691452 " Resolving Swift Overlay dependencies of module" , moduleID.ModuleName );
1470- llvm::StringSet<> allClangDependencies;
1471-
1472- // Find all of the discovered Clang modules that this module depends on.
1473- for (const auto &dep : cache.getAllClangDependencies (moduleID))
1474- findAllImportedClangModules (dep.ModuleName , cache, allClangDependencies);
1453+ auto visibleClangDependencies = cache.getVisibleClangModules (moduleID);
14751454
14761455 llvm::StringMap<SwiftModuleScannerQueryResult> swiftOverlayLookupResult;
14771456 std::mutex lookupResultLock;
@@ -1502,7 +1481,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
15021481 };
15031482
15041483 // Enque asynchronous lookup tasks
1505- for (const auto &clangDep : allClangDependencies )
1484+ for (const auto &clangDep : visibleClangDependencies )
15061485 ScanningThreadPool.async (scanForSwiftDependency,
15071486 getModuleImportIdentifier (clangDep.getKey ().str ()));
15081487 ScanningThreadPool.wait ();
@@ -1531,7 +1510,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
15311510 lookupResult.incompatibleCandidates , cache, std::nullopt );
15321511 }
15331512 };
1534- for (const auto &clangDep : allClangDependencies )
1513+ for (const auto &clangDep : visibleClangDependencies )
15351514 recordResult (clangDep.getKey ().str ());
15361515
15371516 // C++ Interop requires additional handling
@@ -1564,7 +1543,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
15641543 lookupCxxStdLibOverlay = false ;
15651544
15661545 if (lookupCxxStdLibOverlay) {
1567- for (const auto &clangDepNameEntry : allClangDependencies ) {
1546+ for (const auto &clangDepNameEntry : visibleClangDependencies ) {
15681547 auto clangDepName = clangDepNameEntry.getKey ().str ();
15691548
15701549 // If this Clang module is a part of the C++ stdlib, and we haven't
0 commit comments