You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Disable the import of private dependencies when using precise invocations.
ModuleFileSharedCore::getTransitiveLoadingBehavior() has a
best-effort mode that is enabled when debugger support is turned
on that will try to import implementation-only imports of Swift
modules, but won't treat import failures as errors. When explicit
modules are on, this has the unwanted side-effect of potentially
triggering an implicit Clang module build if one of the internal
dependencies of a library was not used to build the target.
I previously fixed this problem by turning off implicit modules while
loading the context dependencies. However, we discovered that the
transitive loading of private dependencies can also lead to additional
Swift modules being pulled in that through their dependencies can lead
to dependency cycles that were not a problem at build time.
Therefore, a simpler solution to both problem is turning of private
dependency import altogether when using precise compiler invocations.
Note that private dependencies can still sneak into a context via type
reconstruction, which can also trigger module imports.
rdar://132360374
(cherry picked from commit 534c7a9)
0 commit comments