Methods defined in a Struct.new block end up on parent module
Open
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 833
- Forks
- 99
- Avg merge
- 9h 30m
- Merged PRs (30d)
- 12
Description
Customer = Struct.new(:name, :address) do
def greeting
"Hello #{name}!"
end
end
Generated:
class Object
private
def greeting: -> String
end
class Customer < Struct[untyped]
attr_accessor name(): untyped
attr_accessor address(): untyped
end
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
No source file or test is identified in the issue. Start by reproducing the provided Ruby Struct.new snippet in TypeProf and trace how the block is analyzed; done means greeting is associated with Customer rather than emitted on Object.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- compilers, devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100