From 3e57226720d0b8245629cfb2620cf4daa14f15b7 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sat, 19 Jan 2019 11:34:26 +0900 Subject: [PATCH] Deprecate iterator? method --- spec/ruby/core/kernel/iterator_spec.rb | 14 ++++++++------ vm_eval.c | 18 +++++++++++++++--- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/spec/ruby/core/kernel/iterator_spec.rb b/spec/ruby/core/kernel/iterator_spec.rb index 7fbdade9dc..6ebf49b174 100644 --- a/spec/ruby/core/kernel/iterator_spec.rb +++ b/spec/ruby/core/kernel/iterator_spec.rb @@ -1,12 +1,14 @@ require_relative '../../spec_helper' require_relative 'fixtures/classes' -describe "Kernel#iterator?" do - it "is a private method" do - Kernel.should have_private_instance_method(:iterator?) +ruby_version_is ""..."2.7" do + describe "Kernel#iterator?" do + it "is a private method" do + Kernel.should have_private_instance_method(:iterator?) + end end -end -describe "Kernel.iterator?" do - it "needs to be reviewed for spec completeness" + describe "Kernel.iterator?" do + it "needs to be reviewed for spec completeness" + end end diff --git a/vm_eval.c b/vm_eval.c index 0e7047af65..8bc83f4dec 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -2095,7 +2095,6 @@ rb_f_local_variables(void) /* * call-seq: * block_given? -> true or false - * iterator? -> true or false * * Returns true if yield would execute a * block in the current context. The iterator? form @@ -2113,7 +2112,6 @@ rb_f_local_variables(void) * try do "hello" end #=> "hello" */ - static VALUE rb_f_block_given_p(void) { @@ -2129,6 +2127,20 @@ rb_f_block_given_p(void) } } +/* + * call-seq: + * iterator? -> true or false + * + * Deprecated. Use block_given? instead. + */ + +static VALUE +rb_f_iterator_p(void) +{ + rb_warning("iterator? is deprecated; use block_given? instead"); + return rb_f_block_given_p(); +} + VALUE rb_current_realfilepath(void) { @@ -2144,7 +2156,7 @@ Init_vm_eval(void) { rb_define_global_function("eval", rb_f_eval, -1); rb_define_global_function("local_variables", rb_f_local_variables, 0); - rb_define_global_function("iterator?", rb_f_block_given_p, 0); + rb_define_global_function("iterator?", rb_f_iterator_p, 0); rb_define_global_function("block_given?", rb_f_block_given_p, 0); rb_define_global_function("catch", rb_f_catch, -1); -- 2.20.1