natalie
natalie copied to clipboard
Bug with evaluation of method argument default value
We shouldn't always evaluate the default value of an argument. Given the following code:
# default.rb
def foo(bar = (bar_missing = true))
p(bar:, bar_missing:)
end
foo
foo(1)
CRuby produces:
→ ruby default.rb
{:bar=>true, :bar_missing=>true}
{:bar=>1, :bar_missing=>nil}
But Natalie produces:
→ bin/natalie default.rb
{:bar=>true, :bar_missing=>true}
{:bar=>1, :bar_missing=>true}