diff --git a/proc.c b/proc.c index 558304fb7f..57628c86f1 100644 --- a/proc.c +++ b/proc.c @@ -710,7 +710,7 @@ proc_new(VALUE klass, int8_t is_lambda) rb_raise(rb_eArgError, proc_without_block); } else { - rb_warn(proc_without_block); + rb_warn("Capturing the given block using Proc.new is deprecated; use `&block` instead"); } } #else diff --git a/spec/ruby/core/kernel/proc_spec.rb b/spec/ruby/core/kernel/proc_spec.rb index 2c0e7988f9..8c56946874 100644 --- a/spec/ruby/core/kernel/proc_spec.rb +++ b/spec/ruby/core/kernel/proc_spec.rb @@ -56,7 +56,7 @@ describe "Kernel#proc" do -> { some_method { "hello" } - }.should complain(/tried to create Proc object without a block/) + }.should complain(/Capturing the given block using Proc.new is deprecated/) end end diff --git a/spec/ruby/core/proc/new_spec.rb b/spec/ruby/core/proc/new_spec.rb index 1c37c64478..7579bfe1b6 100644 --- a/spec/ruby/core/proc/new_spec.rb +++ b/spec/ruby/core/proc/new_spec.rb @@ -194,11 +194,11 @@ describe "Proc.new without a block" do ruby_version_is "2.7" do it "can be created if invoked from within a method with a block" do - lambda { ProcSpecs.new_proc_in_method { "hello" } }.should complain(/tried to create Proc object without a block/) + lambda { ProcSpecs.new_proc_in_method { "hello" } }.should complain(/Capturing the given block using Proc.new is deprecated/) end it "can be created if invoked on a subclass from within a method with a block" do - lambda { ProcSpecs.new_proc_subclass_in_method { "hello" } }.should complain(/tried to create Proc object without a block/) + lambda { ProcSpecs.new_proc_subclass_in_method { "hello" } }.should complain(/Capturing the given block using Proc.new is deprecated/) end @@ -209,7 +209,7 @@ describe "Proc.new without a block" do -> { some_method { "hello" } - }.should complain(/tried to create Proc object without a block/) + }.should complain(/Capturing the given block using Proc.new is deprecated/) end end end