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.
In #16085, another "ghost dependency" case was solved.
It was, however, becoming a little less clear why the fix was necessary.
This PR is an attempt to address this.
So, recap time, what happens against in
mkGraph
?We currently construct a single Trie with nodes we encountered in the files.
Once we have that, we process all identifiers in that project and do look-ups in Trie to detect any dependencies. The downside of this approach is that look-ups can happen in the Trie and hits can be found for files that came after the current file index.
We currently filtered those out while we were querying but it might be more easy to reason about this when we build up the Trie incrementally for each file. In short, we use a Trie for each file that only contains the nodes from files that came before it. This way, we never need to filter out anything based on the index.