Project

General

Profile

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)

Back