Actions
Bug #11544
closedArgumentError: Enumerable#to_set(klass, *args, &block) if specify *args.
ruby -v:
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
Description
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 `<main>'
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
Updated by nagachika (Tomoyuki Chikanaga) over 8 years ago
- Status changed from Open to Assigned
- Assignee set to knu (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
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Description updated (diff)
Updated by knu (Akinori MUSHA) over 8 years ago
- Status changed from Assigned to Rejected
This is not a bug. Extra arguments are reserved for Set's subclasses.
Updated by nagachika (Tomoyuki Chikanaga) over 8 years ago
- Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED to 2.0.0: WONTFIX, 2.1: WONTFIX, 2.2: WONTFIX
Actions
Like0
Like0Like0Like0Like0