Project

General

Profile

Actions

Bug #11544

closed

ArgumentError: Enumerable#to_set(klass, *args, &block) if specify *args.

Added by torifuku.kaiou (Osamu Yamauchi) over 8 years ago. Updated over 8 years ago.

Status:
Rejected
Target version:
-
ruby -v:
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
[ruby-core:<unknown>]

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

0001-lib-set.rb-use-args-of-Enumerable-to_set-Set-to_set.patch (3.17 KB) 0001-lib-set.rb-use-args-of-Enumerable-to_set-Set-to_set.patch The patch adds *args by using << method. torifuku.kaiou (Osamu Yamauchi), 09/21/2015 12:28 PM

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

Also available in: Atom PDF

Like0
Like0Like0Like0Like0