From: nagachika00@... Date: 2015-10-27T03:47:42+00:00 Subject: [ruby-core:71205] [Ruby trunk - Bug #11544] [Assigned] ArgumentError: Enumerable#to_set(klass, *args, &block) if specify *args. Issue #11544 has been updated by Tomoyuki Chikanaga. Status changed from Open to Assigned Assignee set to Akinori MUSHA Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED ---------------------------------------- Bug #11544: ArgumentError: Enumerable#to_set(klass, *args, &block) if specify *args. https://bugs.ruby-lang.org/issues/11544#change-54584 * Author: Osamu Yamauchi * Status: Assigned * Priority: Normal * Assignee: Akinori MUSHA * ruby -v: ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14] * Backport: 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED ---------------------------------------- --- require "set" [2,5,4,3,2,1,3].to_set(Set, 6, 7, 8) #=> ArgumentError --- [Actual] /Users/torifuku/.rbenv/versions/2.2.3/lib/ruby/2.2.0/set.rb:80:in `initialize': wrong number of arguments (4 for 0..1) (ArgumentError) from /Users/torifuku/.rbenv/versions/2.2.3/lib/ruby/2.2.0/set.rb:691:in `new' from /Users/torifuku/.rbenv/versions/2.2.3/lib/ruby/2.2.0/set.rb:691:in `to_set' from report.rb:3:in `
' [Expected] ArgumentError should not occur. Set instance has 1, 2, 3, 4, 5, 6, 7, 8. Because the below document is written about *args. http://ruby-doc.org/stdlib-2.2.3/libdoc/set/rdoc/Enumerable.html to_set(klass = Set, *args, &block) [Consideration] extract from lib/set.rb --- class Set def initialize(enum = nil, &block) # no *args ... end end module Enumerable def to_set(klass = Set, *args, &block) klass.new(self, *args, &block) end end --- I propose this patch. ---Files-------------------------------- 0001-lib-set.rb-use-args-of-Enumerable-to_set-Set-to_set.patch (3.17 KB) -- https://bugs.ruby-lang.org/