diff options
author | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-06 17:09:43 +0000 |
---|---|---|
committer | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-06 17:09:43 +0000 |
commit | c73b6bd7ebd01133538c645566944132dbde4d13 (patch) | |
tree | ebfd9dac0285249017d4958de3ee475c84b7bd32 | |
parent | ac7f5157ac9d35b40da74ad932e9997f3f3e38a4 (diff) | |
download | ruby-c73b6bd7ebd01133538c645566944132dbde4d13.tar.gz |
* 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
-rw-r--r-- | enumerator.c | 1 | ||||
-rw-r--r-- | test/ruby/test_enumerator.rb | 5 |
2 files changed, 5 insertions, 1 deletions
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 |