1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Undef Enumerator::Chain#{feed,next,next_values,peek,peek_values}

Previously these methods were defined but raised TypeError, which
seems worse.
This commit is contained in:
Jeremy Evans 2021-03-05 12:47:00 -08:00
parent e1d16a9e56
commit 68d028578a
Notes: git 2021-03-07 06:56:44 +09:00
2 changed files with 11 additions and 0 deletions

View file

@ -4200,6 +4200,11 @@ InitVM_Enumerator(void)
rb_define_method(rb_cEnumChain, "size", enum_chain_size, 0);
rb_define_method(rb_cEnumChain, "rewind", enum_chain_rewind, 0);
rb_define_method(rb_cEnumChain, "inspect", enum_chain_inspect, 0);
rb_undef_method(rb_cEnumChain, "feed");
rb_undef_method(rb_cEnumChain, "next");
rb_undef_method(rb_cEnumChain, "next_values");
rb_undef_method(rb_cEnumChain, "peek");
rb_undef_method(rb_cEnumChain, "peek_values");
/* ArithmeticSequence */
rb_cArithSeq = rb_define_class_under(rb_cEnumerator, "ArithmeticSequence", rb_cEnumerator);

View file

@ -832,6 +832,12 @@ class TestEnumerator < Test::Unit::TestCase
assert_equal(33, chain.next)
end
def test_chain_undef_methods
chain = [1].to_enum + [2].to_enum
meths = (chain.methods & [:feed, :next, :next_values, :peek, :peek_values])
assert_equal(0, meths.size)
end
def test_produce
assert_raise(ArgumentError) { Enumerator.produce }