From c73b6bd7ebd01133538c645566944132dbde4d13 Mon Sep 17 00:00:00 2001 From: marcandre Date: Tue, 6 Nov 2012 17:09:43 +0000 Subject: * enumerator.c (enumerator_initialize): Warn when using deprecated form [Feature #6636] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- enumerator.c | 1 + test/ruby/test_enumerator.rb | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/enumerator.c b/enumerator.c index f01ddd51e6..d5d276f6aa 100644 --- a/enumerator.c +++ b/enumerator.c @@ -357,6 +357,7 @@ enumerator_initialize(int argc, VALUE *argv, VALUE obj) recv = generator_init(generator_allocate(rb_cGenerator), rb_block_proc()); } else { + rb_warn("Enumerator.new without a block is deprecated; use Object#to_enum"); recv = *argv++; if (--argc) { meth = *argv++; diff --git a/test/ruby/test_enumerator.rb b/test/ruby/test_enumerator.rb index 8b33a5e826..6b8a09f80f 100644 --- a/test/ruby/test_enumerator.rb +++ b/test/ruby/test_enumerator.rb @@ -57,7 +57,10 @@ class TestEnumerator < Test::Unit::TestCase def test_initialize assert_equal([1, 2, 3], @obj.to_enum(:foo, 1, 2, 3).to_a) - assert_equal([1, 2, 3], Enumerator.new(@obj, :foo, 1, 2, 3).to_a) + _, err = capture_io do + assert_equal([1, 2, 3], Enumerator.new(@obj, :foo, 1, 2, 3).to_a) + end + assert_match 'Enumerator.new without a block is deprecated', err assert_equal([1, 2, 3], Enumerator.new { |y| i = 0; loop { y << (i += 1) } }.take(3)) assert_raise(ArgumentError) { Enumerator.new } end -- cgit v1.2.3