Bug #11544
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
~~~ruby --- require "set" [2,5,4,3,2,1,3].to_set(Set, 6, 7, 8) #=> ArgumentError ~~~ --- ## Actual [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 `<main>' ~~~ ## Expected [Expected] ArgumentError should not occur. Set instance has `1, 1, 2, 3, 4, 5, 6, 7, 8`. 8. Because the below document is written about `*args`. *args. http://ruby-doc.org/stdlib-2.2.3/libdoc/set/rdoc/Enumerable.html ~~~ruby to_set(klass = Set, *args, &block) ~~~ ## Consideration [Consideration] extract from lib/set.rb ~~~ruby --- 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.