Fix $(location) references to data attribute #990
Merged
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.
The following kind of
$(location)
expansion failed with an "expression is not a declared prerequisite of this rule" error.The reason is that since #959
expand_location
was called multiple times, iterating over all relevant attributes. However,expand_location
fails immediately if any reference cannot be resolved. This issue didn't come up so far, because certain attributes (e.g.tools
) are always included implicitly. However,data
is not.This PR changes the code to instead deduplicate the list of targets and call
expand_location
only once. This PR also modifies//tests/binary-with-data
to serve as a regression test for this issue.