Issue #11605 has been updated by Usaku NAKAMURA.

Status changed from Open to Rejected

Why did not you try actually?

~~~
irb(main):001:0> def a(opt='opt',required)
irb(main):002:1>   p [opt, required]
irb(main):003:1> end
=> :a
irb(main):004:0> a('required')
["opt", "required"]
=> ["opt", "required"]
~~~

----------------------------------------
Feature #11605: Ruby should raise on def(a='a', b) [optional param that can't be used]
https://bugs.ruby-lang.org/issues/11605#change-54484

* Author: Rodrigo Rosenfeld Rosas
* Status: Rejected
* Priority: Normal
* Assignee: Yukihiro Matsumoto
----------------------------------------
Why doesn't Ruby complain when defining a method like this?

~~~
def a(opt='opt', required)
end
~~~

I believe it's impossible to call method 'a' passing only required, while sticking to the default value for 'opt', right? So, why should Ruby allow such definition?



-- 
https://bugs.ruby-lang.org/