From: "matz (Yukihiro Matsumoto)" Date: 2013-05-29T10:23:16+09:00 Subject: [ruby-core:55188] [ruby-trunk - Bug #8457][Closed] Function arguments: Is this intended? Issue #8457 has been updated by matz (Yukihiro Matsumoto). Status changed from Open to Closed I am not sure what you meant, but I am sure you are fooled by side-effect of #concat method. a = [1, 2] a.tap {|*p| # p is an array that wraps a i.e. p=[a] a.clear # a is cleared; now p=[[]] a.concat p # you concat p, that contains reference to a to a, make it circular } # => a = [a] This is not a bug. ---------------------------------------- Bug #8457: Function arguments: Is this intended? https://bugs.ruby-lang.org/issues/8457#change-39550 Author: boris_stitnicky (Boris Stitnicky) Status: Closed Priority: Normal Assignee: Category: Target version: ruby -v: 2.0.0 Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN a = [1, 2, x: 3] a.tap { |*p, q| a.clear.concat p } #=> [1, 2] but a = [1, 2, x: 3] a.tap { |*p, **q| a.clear.concat p } #=> [[...]] and also a = [1, 2] a.tap { |*p| a.clear.concat p } #=> [[...]] ??? -- http://bugs.ruby-lang.org/