From: Run Paint Run Run Date: 2009-06-14T06:49:21+09:00 Subject: [ruby-core:23844] [Bug #1626] Set Raises NoMethodError for Non-Enumerable Arguments Bug #1626: Set Raises NoMethodError for Non-Enumerable Arguments http://redmine.ruby-lang.org/issues/show/1626 Author: Run Paint Run Run Status: Open, Priority: Normal Category: lib ruby -v: ruby 1.9.2dev (2009-06-13 trunk 23682) [i686-linux] Attempting to construct a Set on 1.9 with a non-Enumerable argument causes a NoMethodError to be raised, which is unintuitive. $ ruby -rset -ve 'Set.new 3' ruby 1.9.2dev (2009-06-13 trunk 23682) [i686-linux] /usr/local/lib/ruby/1.9.1/set.rb:282:in `merge': undefined method `each' for 3:Fixnum (NoMethodError) from /usr/local/lib/ruby/1.9.1/set.rb:75:in `initialize' from -e:1:in `new' from -e:1:in `
' 1.8 raises an ArgumentError for this scenario, which is far more sensible. $ ruby1.8 -rset -ve 'Set.new 3' ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] /usr/lib/ruby/1.8/set.rb:262:in `merge': value must be enumerable (ArgumentError) from /usr/lib/ruby/1.8/set.rb:75:in `initialize' from -e:1:in `new' from -e:1 ---------------------------------------- http://redmine.ruby-lang.org