Update GraphqlInputObject compiler to skip methods from code #1369
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
We've come across some graphql input objects that define a method with the same name as an argument. For example:
In reality, what happens is that the graphql gem meta-programmatically defines a
foo_id
method (source) and then the user-definedfoo_id
method overrides it. If the sigs are different (like in the example above) this confuses sorbet so we should avoid defining RBI for any arguments where an explicit getter is already defined in code.Implementation
I updated the
GraphqlInputObject
compiler to only generate RBI for methods defined via the graphql gem.Tests
See added tests.