Bug #17558
Updated by nobu (Nobuyoshi Nakada) over 3 years ago
The result of `foo_bar2` should be the same as `foo_bar1`.
```ruby
class C
def bar(*args, **kw)
[args, kw]
end
def nothing_1(*args)
end
define_method(:nothing_2) do |*args|
end
def foo_bar1(*args)
bar(*args)
end
def foo_bar2(*args)
bar(*args)
end
ruby2_keywords :nothing_1, :foo_bar1
ruby2_keywords :nothing_2, :foo_bar2
end
c = C.new
p c.foo_bar1(a: 1) #=> [[], {:a=>1}]
p c.foo_bar2(a: 1) #=> [[{:a=>1}], {}]
```
[patch](https://github.com/ruby/ruby/pull/4096)