Tapioca does not properly attribute prepended methods
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 873
- Forks
- 164
- Avg merge
- 4d 27m
- Merged PRs (30d)
- 9
Description
I haven't verified this yet, but @paracycle told me that if one gem defines a method, and another gem overrides that method via a prepend, the prepended method will be incorrectly written to both gem RBIs.
Example:
# in gem foo
class Foo
def foo; end
end
# in gem bar
module Bar
def foo; end
end
Foo.prepend(Bar)
Tapioca will write bar's foo method to foo's gem RBIs, which is fine if they have the same signature, but not great if the prepend changes the method signature.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or tests. Start by reproducing the foo/bar prepend example in Tapioca and trace how gem RBI ownership is attributed during RBI generation. Done means the prepended foo method is attributed only to bar's gem RBI, while foo's original method remains in foo's RBI.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100