From: nobu@... Date: 2014-12-28T04:54:42+00:00 Subject: [ruby-core:67174] [ruby-trunk - Bug #10659] [Closed] can't dup Fixnum (TypeError) Issue #10659 has been updated by Nobuyoshi Nakada. 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] ---------------------------------------- Bug #10659: can't dup Fixnum (TypeError) https://bugs.ruby-lang.org/issues/10659#change-50660 * Author: Janko Marohni�� * Status: Closed * Priority: Normal * Assignee: * Category: core * Target version: current: 2.2.0 * ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- In Ruby 2.2 (older versions are good) there is a bug with unnamed keyword arguments when `super` is used. ```rb 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. -- https://bugs.ruby-lang.org/