Inline support on protoype
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 2.2k
- Forks
- 256
- Avg merge
- 6d 17h
- Merged PRs (30d)
- 37
Description
I was hoping to use inline documentation to generate proper type signatures, but it doesn't seem to be working at the moment. I have a PR with everything set up to demonstrate here.
Here is the gist, though:
I expect that this calculator.rb file:
class Calculator
# @rbs (Integer, Integer) -> Integer
def add(a, b)
a + b
end
end
And after running this command:
bin/rbs prototype rb lib/calculator.rb > sig/lib/calculator.rbs
Would produce this sig/lib/calculator.rbs file:
class Calculator
def add: (Integer a, Integer b) -> Integer
end
But at the moment, it produces this:
class Calculator
# @rbs (Integer, Integer) -> Integer
def add: (untyped a, untyped b) -> untyped
end
All this with the current specs:
❯ ruby --version
ruby 3.2.7 (2025-02-04 revision 02ec315244) [arm64-darwin23]
❯ bundle info rbs
* rbs (4.0.0.dev.4 8a97819)
Summary: Type signature for Ruby.
Homepage: https://github.com/ruby/rbs
Source Code: https://github.com/ruby/rbs.git
Changelog: https://github.com/ruby/rbs/blob/master/CHANGELOG.md
Path: /Users/aemadrid/.local/share/mise/installs/ruby/3.2.7/lib/ruby/gems/3.2.0/bundler/gems/rbs-8a97819d4419
Is this something that is in the works but not quite ready?
Contributor guide
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 reproduction uses lib/calculator.rb and bin/rbs prototype rb, with output in sig/lib/calculator.rbs. Start by running that command and tracing the prototype path to see why the inline annotation remains a comment. Done means the generated signature uses Integer parameters and return type as shown.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 38/100