-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow implicit creation of input files within a macro's namespace
Recent experience with symbolic macro migration showed that we need to relax the restrictions on the implicit creation of input files. Previously it was an error to refer to a non-existent target `"foo_input"` if there happened to be a symbolic macro named `"foo"` in the package. The rationale was that we don't want to have to evaluate `foo` just to decide whether or not `foo_input` is in fact an `InputFile`. But this restriction means that the common idiom: ```starlark bzl_library( name = "foo", srcs = ["foo.bzl"], ) ``` blocks `bzl_library` from being a symbolic macro (e.g. wrapping the underlying rule). We believe this will be a common blocker well beyond this one example. Therefore, we will now only block the implicit creation of input files when they collide exactly with a target or macro, and not when they merely fall within a macro's namespace. A consequence of this design change is that it complicates how input files are handled when we have lazy macro evaluation. But we'll deal with that when the time comes. Package.java - Update and clarify javadoc for `createAssumedInputFiles()` and `maybeCreateAssumedInput()`. Update check in the latter to only care about exact matches of macro names. TargetRecorder.java - Factor out an accessor for checking whether a macro with the given name exists (insulating the caller from having to worry about the detail of how macro ids are constructed). PackageFactoryTest.java - Make implicit-input-file-creation tests more orthogonal and uniformly named, and update for the semantics change in this CL. (It may be easier to review this file by ignoring the diff and just reviewing the new test content.) Fixes #24064. PiperOrigin-RevId: 689374256 Change-Id: I218338af9f9638e1ec03c34e57e7c9f6e10beaaa
- Loading branch information
1 parent
09faec6
commit 2d4c8eb
Showing
3 changed files
with
97 additions
and
109 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters