Skip to content

Commit d691198

Browse files
committed
[Dependency Scanning ]Revert: Remove Swift Overlay dependencies from the set of direct dependencies
1 parent 19233d0 commit d691198

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

include/swift/DependencyScan/ModuleDependencyScanner.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ class ModuleDependencyScanner {
120120
const ModuleDependencyID &moduleID,
121121
const std::vector<std::string> &clangDependencies,
122122
ModuleDependenciesCache &cache,
123-
ModuleDependencyIDSetVector &swiftOverlayDependencies);
123+
ModuleDependencyIDSetVector &swiftOverlayDependencies,
124+
ModuleDependencyIDSetVector &directDependencies);
124125

125126
/// Identify all cross-import overlay modules of the specified
126127
/// dependency set and apply an action for each.

lib/DependencyScan/ModuleDependencyScanner.cpp

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ ModuleDependencyScanner::resolveDirectModuleDependencies(
519519

520520
// Find all Swift overlays that this module depends on.
521521
resolveSwiftOverlayDependencies(moduleID, allClangModules, cache,
522-
swiftOverlayDependencies);
522+
swiftOverlayDependencies, directDependencies);
523523

524524
// Resolve the dependency info with dependency module information.
525525
cache.resolveDependencyImports(moduleID, directDependencies.getArrayRef());
@@ -674,7 +674,8 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependencies(
674674
const ModuleDependencyID &moduleID,
675675
const std::vector<std::string> &clangDependencies,
676676
ModuleDependenciesCache &cache,
677-
ModuleDependencyIDSetVector &swiftOverlayDependencies) {
677+
ModuleDependencyIDSetVector &swiftOverlayDependencies,
678+
ModuleDependencyIDSetVector &directDependencies) {
678679
llvm::StringMap<llvm::Optional<ModuleDependencyVector>>
679680
swiftOverlayLookupResult;
680681
for (const auto &clangDep : clangDependencies)
@@ -705,18 +706,29 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependencies(
705706
// Aggregate both previously-cached and freshly-scanned module results
706707
auto recordResult = [&cache, &swiftOverlayLookupResult,
707708
&swiftOverlayDependencies,
709+
&directDependencies,
708710
moduleID](const std::string &moduleName) {
709711
auto lookupResult = swiftOverlayLookupResult[moduleName];
710712
if (moduleName != moduleID.ModuleName) {
711713
if (lookupResult == llvm::None) {
712714
const ModuleDependencyInfo *cachedInfo = cache.findDependency(moduleName).value();
713715
swiftOverlayDependencies.insert({moduleName, cachedInfo->getKind()});
716+
// FIXME: Once all clients know to fetch these dependencies from
717+
// `swiftOverlayDependencies`, the goal is to no longer have them in
718+
// `directDependencies` so the following will need to go away.
719+
directDependencies.insert({moduleName, cachedInfo->getKind()});
714720
} else {
715721
// Cache discovered module dependencies.
716722
cache.recordDependencies(lookupResult.value());
717-
if (!lookupResult.value().empty())
723+
if (!lookupResult.value().empty()) {
718724
swiftOverlayDependencies.insert(
719725
{moduleName, lookupResult.value()[0].first.Kind});
726+
// FIXME: Once all clients know to fetch these dependencies from
727+
// `swiftOverlayDependencies`, the goal is to no longer have them in
728+
// `directDependencies` so the following will need to go away.
729+
directDependencies.insert(
730+
{moduleName, lookupResult.value()[0].first.Kind});
731+
}
720732
}
721733
}
722734
};

0 commit comments

Comments
 (0)