@@ -554,23 +554,6 @@ ModuleDependencyScanner::ModuleDependencyScanner(
554554 DependencyTracker, CAS, ActionCache, PrefixMapper.get (), Diagnostics));
555555}
556556
557- // / Find all of the imported Clang modules starting with the given module name.
558- static void findAllImportedClangModules (StringRef moduleName,
559- const ModuleDependenciesCache &cache,
560- llvm::StringSet<> &allModules) {
561- if (!allModules.insert (moduleName).second )
562- return ;
563-
564- auto moduleID =
565- ModuleDependencyID{moduleName.str (), ModuleDependencyKind::Clang};
566- auto optionalDependencies = cache.findDependency (moduleID);
567- if (!optionalDependencies.has_value ())
568- return ;
569-
570- for (const auto &dep : cache.getAllClangDependencies (moduleID))
571- findAllImportedClangModules (dep.ModuleName , cache, allModules);
572- }
573-
574557static std::set<ModuleDependencyID>
575558collectBinarySwiftDeps (const ModuleDependenciesCache &cache) {
576559 std::set<ModuleDependencyID> binarySwiftModuleDepIDs;
@@ -1458,11 +1441,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
14581441 ModuleDependencyIDSetVector &swiftOverlayDependencies) {
14591442 PrettyStackTraceStringAction trace (
14601443 " Resolving Swift Overlay dependencies of module" , moduleID.ModuleName );
1461- llvm::StringSet<> allClangDependencies;
1462-
1463- // Find all of the discovered Clang modules that this module depends on.
1464- for (const auto &dep : cache.getAllClangDependencies (moduleID))
1465- findAllImportedClangModules (dep.ModuleName , cache, allClangDependencies);
1444+ auto visibleClangDependencies = cache.getVisibleClangModules (moduleID);
14661445
14671446 llvm::StringMap<SwiftModuleScannerQueryResult> swiftOverlayLookupResult;
14681447 std::mutex lookupResultLock;
@@ -1493,7 +1472,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
14931472 };
14941473
14951474 // Enque asynchronous lookup tasks
1496- for (const auto &clangDep : allClangDependencies )
1475+ for (const auto &clangDep : visibleClangDependencies )
14971476 ScanningThreadPool.async (scanForSwiftDependency,
14981477 getModuleImportIdentifier (clangDep.getKey ().str ()));
14991478 ScanningThreadPool.wait ();
@@ -1522,7 +1501,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
15221501 lookupResult.incompatibleCandidates , cache, std::nullopt );
15231502 }
15241503 };
1525- for (const auto &clangDep : allClangDependencies )
1504+ for (const auto &clangDep : visibleClangDependencies )
15261505 recordResult (clangDep.getKey ().str ());
15271506
15281507 // C++ Interop requires additional handling
@@ -1555,7 +1534,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
15551534 lookupCxxStdLibOverlay = false ;
15561535
15571536 if (lookupCxxStdLibOverlay) {
1558- for (const auto &clangDepNameEntry : allClangDependencies ) {
1537+ for (const auto &clangDepNameEntry : visibleClangDependencies ) {
15591538 auto clangDepName = clangDepNameEntry.getKey ().str ();
15601539
15611540 // If this Clang module is a part of the C++ stdlib, and we haven't
0 commit comments