@@ -563,23 +563,6 @@ ModuleDependencyScanner::ModuleDependencyScanner(
563
563
DependencyTracker, CAS, ActionCache, PrefixMapper.get (), Diagnostics));
564
564
}
565
565
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
-
583
566
static std::set<ModuleDependencyID>
584
567
collectBinarySwiftDeps (const ModuleDependenciesCache &cache) {
585
568
std::set<ModuleDependencyID> binarySwiftModuleDepIDs;
@@ -1467,11 +1450,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
1467
1450
ModuleDependencyIDSetVector &swiftOverlayDependencies) {
1468
1451
PrettyStackTraceStringAction trace (
1469
1452
" 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);
1475
1454
1476
1455
llvm::StringMap<SwiftModuleScannerQueryResult> swiftOverlayLookupResult;
1477
1456
std::mutex lookupResultLock;
@@ -1502,7 +1481,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
1502
1481
};
1503
1482
1504
1483
// Enque asynchronous lookup tasks
1505
- for (const auto &clangDep : allClangDependencies )
1484
+ for (const auto &clangDep : visibleClangDependencies )
1506
1485
ScanningThreadPool.async (scanForSwiftDependency,
1507
1486
getModuleImportIdentifier (clangDep.getKey ().str ()));
1508
1487
ScanningThreadPool.wait ();
@@ -1531,7 +1510,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
1531
1510
lookupResult.incompatibleCandidates , cache, std::nullopt );
1532
1511
}
1533
1512
};
1534
- for (const auto &clangDep : allClangDependencies )
1513
+ for (const auto &clangDep : visibleClangDependencies )
1535
1514
recordResult (clangDep.getKey ().str ());
1536
1515
1537
1516
// C++ Interop requires additional handling
@@ -1564,7 +1543,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
1564
1543
lookupCxxStdLibOverlay = false ;
1565
1544
1566
1545
if (lookupCxxStdLibOverlay) {
1567
- for (const auto &clangDepNameEntry : allClangDependencies ) {
1546
+ for (const auto &clangDepNameEntry : visibleClangDependencies ) {
1568
1547
auto clangDepName = clangDepNameEntry.getKey ().str ();
1569
1548
1570
1549
// If this Clang module is a part of the C++ stdlib, and we haven't
0 commit comments