mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Dependency Scanning ]Revert: Remove Swift Overlay dependencies from the set of direct dependencies
This commit is contained in:
@@ -519,7 +519,7 @@ ModuleDependencyScanner::resolveDirectModuleDependencies(
|
||||
|
||||
// Find all Swift overlays that this module depends on.
|
||||
resolveSwiftOverlayDependencies(moduleID, allClangModules, cache,
|
||||
swiftOverlayDependencies);
|
||||
swiftOverlayDependencies, directDependencies);
|
||||
|
||||
// Resolve the dependency info with dependency module information.
|
||||
cache.resolveDependencyImports(moduleID, directDependencies.getArrayRef());
|
||||
@@ -674,7 +674,8 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependencies(
|
||||
const ModuleDependencyID &moduleID,
|
||||
const std::vector<std::string> &clangDependencies,
|
||||
ModuleDependenciesCache &cache,
|
||||
ModuleDependencyIDSetVector &swiftOverlayDependencies) {
|
||||
ModuleDependencyIDSetVector &swiftOverlayDependencies,
|
||||
ModuleDependencyIDSetVector &directDependencies) {
|
||||
llvm::StringMap<llvm::Optional<ModuleDependencyVector>>
|
||||
swiftOverlayLookupResult;
|
||||
for (const auto &clangDep : clangDependencies)
|
||||
@@ -705,18 +706,29 @@ void ModuleDependencyScanner::resolveSwiftOverlayDependencies(
|
||||
// Aggregate both previously-cached and freshly-scanned module results
|
||||
auto recordResult = [&cache, &swiftOverlayLookupResult,
|
||||
&swiftOverlayDependencies,
|
||||
&directDependencies,
|
||||
moduleID](const std::string &moduleName) {
|
||||
auto lookupResult = swiftOverlayLookupResult[moduleName];
|
||||
if (moduleName != moduleID.ModuleName) {
|
||||
if (lookupResult == llvm::None) {
|
||||
const ModuleDependencyInfo *cachedInfo = cache.findDependency(moduleName).value();
|
||||
swiftOverlayDependencies.insert({moduleName, cachedInfo->getKind()});
|
||||
// FIXME: Once all clients know to fetch these dependencies from
|
||||
// `swiftOverlayDependencies`, the goal is to no longer have them in
|
||||
// `directDependencies` so the following will need to go away.
|
||||
directDependencies.insert({moduleName, cachedInfo->getKind()});
|
||||
} else {
|
||||
// Cache discovered module dependencies.
|
||||
cache.recordDependencies(lookupResult.value());
|
||||
if (!lookupResult.value().empty())
|
||||
if (!lookupResult.value().empty()) {
|
||||
swiftOverlayDependencies.insert(
|
||||
{moduleName, lookupResult.value()[0].first.Kind});
|
||||
// FIXME: Once all clients know to fetch these dependencies from
|
||||
// `swiftOverlayDependencies`, the goal is to no longer have them in
|
||||
// `directDependencies` so the following will need to go away.
|
||||
directDependencies.insert(
|
||||
{moduleName, lookupResult.value()[0].first.Kind});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user