Issue #7298 has been updated by marcandre (Marc-Andre Lafortune).

Status changed from Open to Feedback

Sorry, I am missing your point. There was no meaning to the form `Enumerator.new( obj ) { block }`; the block was completely ignored and there should have been a warning (like there is for Array.new, #index, #count, ...)

What is the meaning of `{|y| i = 0; loop { y << (i+=1) } }` in your test? Do you think it does anything?
----------------------------------------
Bug #7298: Behavior of Enumerator.new different between 1.9.3 and 2.0.0
https://bugs.ruby-lang.org/issues/7298#change-32583

Author: ayumin (Ayumu AIZAWA)
Status: Feedback
Priority: Normal
Assignee: marcandre (Marc-Andre Lafortune)
Category: 
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-11-07 trunk 37528) [x86_64-darwin12.2.0]


Under 1.9.3, when Enumerator.new was called with arguments and block, it return Enumerator object.
But under trunk, it makes TypeError.

 
 $ ruby -v -e "p Enumerator.new([1,2,3]){|y|y.yield 4}"
 ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.2]
 #<Enumerator: [1, 2, 3]:each>
 
 $ ./ruby -v -e "p Enumerator.new([1,2,3]){|y|y.yield 4}"
 ruby 2.0.0dev (2012-11-07 trunk 37528) [x86_64-darwin12.2.0]
 -e:1:in `initialize': can't convert Array into Integer (TypeError)
 	from -e:1:in `new'
 	from -e:1:in `<main>'




-- 
http://bugs.ruby-lang.org/