[5.9 🍒][Dependency Scannning] Handle special case import of Clang Private "submodules" #66151
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Cherry-pick of #66148
There is a special case that already exists in 'ClangImporter' for implicit module loading: Import of a "submodule" named "Foo.Private" is treated as a top-level module named "Foo_Private". Clang has special support for this.
• Release: Swift 5.9
• Explanation: There is a special case that already exists in
ClangImporter
for implicit module loading: Import of a "submodule" namedFoo.Private
is treated as a top-level module namedFoo_Private
. Clang has special support for this. The dependency scanner didn't know this, so imports ofFoo.Private
instead got treated as imports ofFoo
resulting in scanning result containing incorrect result compared to what the loading compilation will expect.• Scope of Issue: Explicit module builds of projects whose source contains this kind of import will not work.
• Origination: This was a missed special case in the dependency scanner implementation
• Risk: Minimal, this is an additive change to make sure such import statements are correctly resolved to the expected Clang top-level
_Private
module.Resolves rdar://108287140