Skip to content

Optional parameters with default values (example from documentation) do not work at all #21

@Drowze

Description

@Drowze

Attempting to run this example: https://type-ruby.github.io/docs/learn/basics/type-annotations#optional-parameters-with-defaults

# defaults.trb
def greet(name: String, greeting: String = "Hello")
  "#{greeting}, #{name}!"
end

puts greet("Alice")              # "Hello, Alice!"
puts greet("Bob", "Hi")          # "Hi, Bob!"
$ trc defaults.trb
Compiled: defaults.trb -> build/defaults.rb

Compilation results:

# build/defaults.rb
def greet(name, greeting)
  "#{greeting}, #{name}!"
end

puts greet("Alice")              # "Hello, Alice!"
puts greet("Bob", "Hi")          # "Hi, Bob!"
def greet: (name: String, greeting: String = "Hello") -> String
$ ruby build/defaults.rb
build/defaults.rb:1:in 'greet': wrong number of arguments (given 1, expected 2) (ArgumentError)
	from build/defaults.rb:5:in '<main>'

Running on:

$ ruby --version
ruby 3.4.8 (2025-12-17 revision 995b59f666) +PRISM [arm64-darwin24]

$ trc --version
trc 0.0.39

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdocumentationImprovements or additions to documentation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions