diff options
-rw-r--r-- | test/ruby/test_method.rb | 12 | ||||
-rw-r--r-- | vm_insnhelper.c | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb index 91f4b99181..a7945082c2 100644 --- a/test/ruby/test_method.rb +++ b/test/ruby/test_method.rb @@ -1645,15 +1645,15 @@ class TestMethod < Test::Unit::TestCase assert_in_out_err '-w', <<-'RUBY' do |_out, err, _status| def foo = nil foo{} # warn - send(:foo){} # warn + send(:foo){} # don't warn because it uses send b = Proc.new{} foo(&b) # warn RUBY - assert_equal 3, err.size - err = err.join - assert_match(/-:2: warning/, err) - assert_match(/-:3: warning/, err) - assert_match(/-:5: warning/, err) + errstr = err.join("\n") + assert_equal 2, err.size, errstr + + assert_match(/-:2: warning/, errstr) + assert_match(/-:5: warning/, errstr) end assert_in_out_err '-w', <<-'RUBY' do |_out, err, _status| diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 29e6f28dec..d0f73ecf42 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -3090,7 +3090,7 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling, if (UNLIKELY(!ISEQ_BODY(iseq)->param.flags.use_block && calling->block_handler != VM_BLOCK_HANDLER_NONE && - !(vm_ci_flag(calling->cd->ci) & VM_CALL_SUPER))) { + !(vm_ci_flag(calling->cd->ci) & (VM_CALL_OPT_SEND | VM_CALL_SUPER)))) { warn_unused_block(vm_cc_cme(cc), iseq, (void *)ec->cfp->pc); } |