[5.9] Fix issues with excluding macros/plugins from dependency computation #6726
+32
−8
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.
While fixing this, I also noticed the original issue also exists for executable targets, so this gets fixed here as well.
There's one unfortunate nuance here for test targets since using a macro/plugin is indistinguishable from needing to link it because it is being tested. We err on the side of caution here and will always link.
(sidenote: theoretically, plugins do distinguish between linkage and use in the package manifest, but this distinction is not carried forward into the actual model)
Partially fixes swiftlang/swift-source-compat-suite#833 since the underlying project also does not declare a dependency on the macro that is being tested.
(cherry picked from commit b31c19a)