[6.1 🍒][ModuleInterface] Determine package-only resolution need based on input mode #78869
+38
−2
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 #78867
• Description: #77686 restricted lookup of package-only dependencies of loaded binary Swift modules to only occur on in-package source compiles or from compilation of package textual interfaces. The logic to determine if we are in a source compile queried the requested action of the compiler frontend. This is incorrect for Implicitly Built modules, because textual interface sub-invocations inherit the parent invocation's requested action, which means the existing logic considers them to be source compiles. This change fixes this to instead rely on the compiler input mode, which is always set when compiling textual interfaces, both explicit and implicit.
• Risk: Low, this change adds a synchronization mechanism to establish a critical section in the parallel section of the scan, without otherwise changing functionality.
• Testing: Regression test added to the compiler test suite
• Original PR: #78867
• Radar: rdar://143505814