fix: Correctly emit references for Command#call #232
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.
Fixes GRAPH-895.
There are two ways to fix this issue, by emitting a definition
for the synthetic class method generated by Sorbet in rewriter/Command.cc,
as well as emitting a reference for that; OR merely changing
the reference emitting logic to also have a special case
(similar to rewriter/Command.cc). I've picked the second option.
As of now, I don't understand which part of the Sorbet logic
is responsible for making sure that the synthetic method does
not show up when using
findMethodTransitive
which we'reusing for name lookup. So it makes sense to make the simpler
change here.
Sourcegraph colleagues can see a series of Loom recordings here
on my thought process during debugging and fixing this issue.
Test plan
Added snapshot tests.