Actions
Bug #10659
closedcan't dup Fixnum (TypeError)
Description
In Ruby 2.2 (older versions are good) there is a bug with unnamed keyword arguments when super
is used.
module Foo
def foo(**)
end
end
class Bar
include Foo
def foo(bar: "bar", **)
super
end
end
Bar.new.foo # `dup': can't dup Fixnum (TypeError)
It happens when super
is called. If I give the keyword arguments a name (**
=> **options
) or if I remove the default keyword argument (bar: "bar"
), the error doesn't happen.
Updated by nobu (Nobuyoshi Nakada) almost 10 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
Applied in changeset r49041.
parse.y: fix internal IDs conflict
- parse.y (f_kwrest, new_args_tail_gen): unnamed rest keyword and
keywords bits arguments should be unique. since internal IDs
depend on the local variable index in the current scope, new ID
should be made before popping those vtables.
[ruby-core:67157] [Bug #10659]
Updated by usa (Usaku NAKAMURA) almost 10 years ago
- Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED
Updated by naruse (Yui NARUSE) almost 10 years ago
- Backport changed from 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONE
ruby_2_2 r49081 merged revision(s) 49041.
Actions
Like0
Like0Like0Like0