[ruby-core:102153] [Ruby master Bug#17558] ruby2_keywords ignores arguments after a block defined method
From:
nobu@...
Date:
2021-01-19 07:46:48 UTC
List:
ruby-core #102153
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>