Project

General

Profile

Actions

Bug #17558

closed

ruby2_keywords ignores arguments after a block defined method

Bug #17558: ruby2_keywords ignores arguments after a block defined method

Added by nobu (Nobuyoshi Nakada) almost 5 years ago. Updated over 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:102153]

Description

The result of foo_bar2 should be the same as foo_bar1.

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

Updated by nobu (Nobuyoshi Nakada) almost 5 years ago Actions #1

  • Description updated (diff)

Updated by nobu (Nobuyoshi Nakada) almost 5 years ago Actions #2

  • Status changed from Open to Closed

Applied in changeset git|eeacdcb9a073c7d8ad703e0dc9faf229a5ebbe3c.


Fixed premature return

After setting ruby2_keywords for bmethod, the rest of arguments
had been ignored. [Bug #17558]

Updated by naruse (Yui NARUSE) over 4 years ago Actions #3 [ruby-core:102376]

  • Backport changed from 2.5: DONTNEED, 2.6: DONTNEED, 2.7: REQUIRED, 3.0: REQUIRED to 2.5: DONTNEED, 2.6: DONTNEED, 2.7: REQUIRED, 3.0: DONE

ruby_3_0 0b372d9b1df46b82e5819d7592d1c6ba1eb866e1 merged revision(s) eeacdcb9a073c7d8ad703e0dc9faf229a5ebbe3c.

Updated by nagachika (Tomoyuki Chikanaga) over 4 years ago Actions #4

  • Backport changed from 2.5: DONTNEED, 2.6: DONTNEED, 2.7: REQUIRED, 3.0: DONE to 2.5: DONTNEED, 2.6: DONTNEED, 2.7: DONE, 3.0: DONE

ruby_2_7 931815bfd86df603337194f3fcefb46bfe3e7940 merged revision(s) eeacdcb9a073c7d8ad703e0dc9faf229a5ebbe3c.

Actions

Also available in: PDF Atom