@@ -554,23 +554,6 @@ ModuleDependencyScanner::ModuleDependencyScanner(
554
554
DependencyTracker, CAS, ActionCache, PrefixMapper.get (), Diagnostics));
555
555
}
556
556
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
-
574
557
static std::set<ModuleDependencyID>
575
558
collectBinarySwiftDeps (const ModuleDependenciesCache &cache) {
576
559
std::set<ModuleDependencyID> binarySwiftModuleDepIDs;
@@ -1458,11 +1441,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
1458
1441
ModuleDependencyIDSetVector &swiftOverlayDependencies) {
1459
1442
PrettyStackTraceStringAction trace (
1460
1443
" 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);
1466
1445
1467
1446
llvm::StringMap<SwiftModuleScannerQueryResult> swiftOverlayLookupResult;
1468
1447
std::mutex lookupResultLock;
@@ -1493,7 +1472,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
1493
1472
};
1494
1473
1495
1474
// Enque asynchronous lookup tasks
1496
- for (const auto &clangDep : allClangDependencies )
1475
+ for (const auto &clangDep : visibleClangDependencies )
1497
1476
ScanningThreadPool.async (scanForSwiftDependency,
1498
1477
getModuleImportIdentifier (clangDep.getKey ().str ()));
1499
1478
ScanningThreadPool.wait ();
@@ -1522,7 +1501,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
1522
1501
lookupResult.incompatibleCandidates , cache, std::nullopt );
1523
1502
}
1524
1503
};
1525
- for (const auto &clangDep : allClangDependencies )
1504
+ for (const auto &clangDep : visibleClangDependencies )
1526
1505
recordResult (clangDep.getKey ().str ());
1527
1506
1528
1507
// C++ Interop requires additional handling
@@ -1555,7 +1534,7 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependenciesForModule(
1555
1534
lookupCxxStdLibOverlay = false ;
1556
1535
1557
1536
if (lookupCxxStdLibOverlay) {
1558
- for (const auto &clangDepNameEntry : allClangDependencies ) {
1537
+ for (const auto &clangDepNameEntry : visibleClangDependencies ) {
1559
1538
auto clangDepName = clangDepNameEntry.getKey ().str ();
1560
1539
1561
1540
// If this Clang module is a part of the C++ stdlib, and we haven't
0 commit comments