Skip to content

Commit e23f26a

Browse files
authored
Merge pull request #68841 from artemcm/OptionalPrivateClangSubmodule
[Dependency Scanning] Only optionally try to resolve imports of 'Foo.Private' submodules to 'Foo_Private' top-level modules.
2 parents e8bbedb + 04eb35b commit e23f26a

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
@@ -724,7 +724,7 @@ class ModuleDependencyInfo {
724724
// Special case: a submodule named "Foo.Private" can be moved to a top-level
725725
// module named "Foo_Private". ClangImporter has special support for this.
726726
if (submoduleComponent.Item.str() == "Private")
727-
ImportedModuleName = ImportedModuleName + "_Private";
727+
addOptionalModuleImport(ImportedModuleName + "_Private", alreadyAddedModules);
728728
}
729729

730730
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)