From: nobu@...
Date: 2021-01-19T07:46:48+00:00
Subject: [ruby-core:102153] [Ruby master Bug#17558] ruby2_keywords ignores arguments after a block defined method

Issue #17558 has been reported by nobu (Nobuyoshi Nakada).

----------------------------------------
Bug #17558: ruby2_keywords ignores arguments after a block defined method
https://bugs.ruby-lang.org/issues/17558

* Author: nobu (Nobuyoshi Nakada)
* Status: Open
* Priority: Normal
* Backport: 2.5: DONTNEED, 2.6: DONTNEED, 2.7: REQUIRED, 3.0: REQUIRED
----------------------------------------
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}], {}]
```



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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>