make GlobalState::*InitForFile
functions only take FileRef
instead of Loc
#5397
8000
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.
Motivation
GlobalState::staticInitForFile
andGlobalState::lookupStaticInitForFile
takeLoc
and generally only care about the file attached to thatLoc
. But because of this, we end up synthesizing aLoc
at the callsites to those functions, and we do it in inconsistent ways. This scheme also results in less clear code: one wonders why you have a fullLoc
for a function that should seemingly only care about the file.We should standardize: the aforementioned functions should only take
FileRef
and be responsible for synthesizing fullLoc
s for internal purposes. We can then ensure that things are much more consistent (e.g. the symbols entered bystaticInitForFile
no longer depend on the first timestaticInitForFile
is called and theLoc
passed to it).Test plan
See included automated tests.