tree 6aabcde59da425cce3a4e2544077eb3e832f5231
parent 8b0f51b142417ed94949f71711a6c3c122599a17
author brandjon <brandjon@google.com> 1596820997 -0700
committer Copybara-Service <copybara-worker@google.com> 1596821062 -0700

Eliminate package lookup from ASTFileLookupFunction

BzlLoadFunction does a package lookup to confirm that the requested bzl label does indeed have a corresponding package. However, ASTFileLookupFunction repeats this lookup so that it can obtain the Root for the actual file retrieval. This is an unnecessary Skyframe dep, and is replaced by incorporating the Root into the ast key.

There may be some observable changes, e.g. regarding the error messages for edge cases like a prelude file that crosses package boundaries. The bigger changes will be when we load the prelude using BzlLoadFunction.

This resolves a TODO left behind in the wake of --incompatible_disallow_load_labels_to_cross_package_boundaries. It follows in the footsteps of unknown commit (parts of which were subsequently done in unknown commit).

PackageFunction changes:
- Auto-format file, add "static"
- Inline away preludeLabel field
- Factor off prelude lookup into a helper. This will go away when prelude loading is merged into bzl loading. In the meantime, this logic gets more complicated due to the new need to do package lookup for the prelude file (since it won't be done inside ASTFileLookupFunction).

Other notes:
- Eliminate a redundant test in ASTFileLookupFunctionTest, and rename some scratch files (the test cases appear to believe ASTFileLookupFunction can be used to load BUILD files)

Work toward #11437 and toward flat Starlark environments.

RELNOTES: None
PiperOrigin-RevId: 325459040
