Skip to content

Commit 94837ad

Browse files
committed
[Dependency Scanning] Respect the Language Option for cross-import overlay enablement
1 parent fbe7d89 commit 94837ad

File tree

3 files changed

+34
-5
lines changed

3 files changed

+34
-5
lines changed

lib/DependencyScan/ModuleDependencyScanner.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -327,9 +327,10 @@ ModuleDependencyScanner::getModuleDependencies(ModuleDependencyID moduleID,
327327
}
328328

329329
// Resolve cross-import overlays.
330-
discoverCrossImportOverlayDependencies(
331-
moduleID.ModuleName, allModules.getArrayRef().slice(1), cache,
332-
[&](ModuleDependencyID id) { allModules.insert(id); });
330+
if (ScanCompilerInvocation.getLangOptions().EnableCrossImportOverlays)
331+
discoverCrossImportOverlayDependencies(
332+
moduleID.ModuleName, allModules.getArrayRef().slice(1), cache,
333+
[&](ModuleDependencyID id) { allModules.insert(id); });
333334

334335
return allModules.takeVector();
335336
}

test/ScanDependencies/module_deps_cross_import_overlay.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// RUN: %empty-directory(%t)
22
// RUN: mkdir -p %t/clang-module-cache
3-
// RUN: %target-swift-frontend -scan-dependencies -module-load-mode prefer-interface -module-cache-path %t/clang-module-cache %s -o %t/deps.json -I %S/Inputs/CHeaders -I %S/Inputs/Swift -I %S/Inputs/CHeaders/ExtraCModules -emit-dependencies -emit-dependencies-path %t/deps.d -import-objc-header %S/Inputs/CHeaders/Bridging.h -swift-version 4 -module-name CrossImportTestModule
3+
// RUN: %target-swift-frontend -scan-dependencies -module-load-mode prefer-interface -module-cache-path %t/clang-module-cache %s -o %t/deps.json -I %S/Inputs/CHeaders -I %S/Inputs/Swift -I %S/Inputs/CHeaders/ExtraCModules -emit-dependencies -emit-dependencies-path %t/deps.d -import-objc-header %S/Inputs/CHeaders/Bridging.h -swift-version 4 -module-name CrossImportTestModule -enable-cross-import-overlays
44
// Check the contents of the JSON output
55
// RUN: %validate-json %t/deps.json | %FileCheck %s
66

77
// Ensure that round-trip serialization does not affect result
8-
// RUN: %target-swift-frontend -scan-dependencies -module-load-mode prefer-interface -test-dependency-scan-cache-serialization -module-cache-path %t/clang-module-cache %s -o %t/deps.json -I %S/Inputs/CHeaders -I %S/Inputs/Swift -I %S/Inputs/CHeaders/ExtraCModules -emit-dependencies -emit-dependencies-path %t/deps.d -import-objc-header %S/Inputs/CHeaders/Bridging.h -swift-version 4 -module-name CrossImportTestModule
8+
// RUN: %target-swift-frontend -scan-dependencies -module-load-mode prefer-interface -test-dependency-scan-cache-serialization -module-cache-path %t/clang-module-cache %s -o %t/deps.json -I %S/Inputs/CHeaders -I %S/Inputs/Swift -I %S/Inputs/CHeaders/ExtraCModules -emit-dependencies -emit-dependencies-path %t/deps.d -import-objc-header %S/Inputs/CHeaders/Bridging.h -swift-version 4 -module-name CrossImportTestModule -enable-cross-import-overlays
99
// RUN: %validate-json %t/deps.json | %FileCheck %s
1010

1111
// REQUIRES: executable_test
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: mkdir -p %t/clang-module-cache
3+
// RUN: %target-swift-frontend -scan-dependencies -module-load-mode prefer-interface -module-cache-path %t/clang-module-cache %s -o %t/deps.json -I %S/Inputs/CHeaders -I %S/Inputs/Swift -I %S/Inputs/CHeaders/ExtraCModules -emit-dependencies -emit-dependencies-path %t/deps.d -import-objc-header %S/Inputs/CHeaders/Bridging.h -module-name CrossImportTestModule -disable-cross-import-overlays
4+
5+
// Check the contents of the JSON output
6+
// RUN: %validate-json %t/deps.json | %FileCheck %s
7+
8+
// REQUIRES: executable_test
9+
// REQUIRES: objc_interop
10+
11+
@_exported import CrossImportTestModule
12+
import EWrapper
13+
import SubEWrapper
14+
15+
// CHECK: "directDependencies": [
16+
// CHECK-DAG: "swift": "EWrapper"
17+
// CHECK-DAG: "swift": "F"
18+
// CHECK-DAG: "swift": "SubEWrapper"
19+
// CHECK-DAG: "swift": "Swift"
20+
// CHECK-DAG: "swift": "SwiftOnoneSupport"
21+
// CHECK-DAG: "swift": "_Concurrency"
22+
// CHECK-DAG: "swift": "_StringProcessing"
23+
// CHECK-DAG: "clang": "_SwiftConcurrencyShims"
24+
// CHECK-DAG: "clang": "CrossImportTestModule"
25+
26+
// Ensure the cross-import overlay is not detected with -disable-cross-import-overlays
27+
// CHECK-NOT: "swift": "_cross_import_E"
28+

0 commit comments

Comments
 (0)