Skip to content

Commit 3c3ade3

Browse files
authored
Merge pull request #68842 from artemcm/510OptionalPrivateClangSubmodule
[5.10 πŸ’][Dependency Scanning] Only optionally try to resolve imports of 'Foo.Private' submodules to `Foo_Private` top-level modules.
2 parents 546d724 + 5d9b4c1 commit 3c3ade3

File tree

5 files changed

+14
-3
lines changed

5 files changed

+14
-3
lines changed

β€Žinclude/swift/AST/ModuleDependencies.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,7 @@ class ModuleDependencyInfo {
699699
// Special case: a submodule named "Foo.Private" can be moved to a top-level
700700
// module named "Foo_Private". ClangImporter has special support for this.
701701
if (submoduleComponent.Item.str() == "Private")
702-
ImportedModuleName = ImportedModuleName + "_Private";
702+
addOptionalModuleImport(ImportedModuleName + "_Private", alreadyAddedModules);
703703
}
704704

705705
addModuleImport(ImportedModuleName, alreadyAddedModules);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
void funcY(void);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
void funcYPrivate(void);

β€Žtest/ScanDependencies/Inputs/CHeaders/module.modulemap

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,10 @@ module X_Private {
4646
header "X_Private.h"
4747
export *
4848
}
49+
module Y {
50+
header "Y.h"
51+
export *
52+
explicit module Private {
53+
header "Y_Private.h"
54+
}
55+
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
// RUN: %empty-directory(%t.module-cache)
2-
// RUN: %target-swift-frontend -scan-dependencies -module-cache-path %t.module-cache %s -o %t.deps.json -I %S/Inputs/CHeaders
2+
// RUN: %target-swift-frontend -scan-dependencies -module-cache-path %t.module-cache %s -o %t.deps.json -I %S/Inputs/CHeaders -verify
33

44
// RUN: %validate-json %t.deps.json | %FileCheck %s
55
// CHECK: "clang": "X_Private"
6+
// CHECK: "clang": "Y"
7+
// CHECK-NOT: "clang": "Y_Private"
68
import X.Private
7-
9+
import Y.Private

0 commit comments

Comments
Β (0)