diff --git a/test/ruby/test_refinement.rb b/test/ruby/test_refinement.rb index 6ce434790b..a6c5a438cf 100644 --- a/test/ruby/test_refinement.rb +++ b/test/ruby/test_refinement.rb @@ -2712,6 +2712,18 @@ class TestRefinement < Test::Unit::TestCase INPUT end + # [Bug #21265] + def test_symbol_proc_from_using_scope + assert_separately([], <<~RUBY) + class RefinedScope + using(Module.new { refine(Kernel) { def itself = 0 } }) + ITSELF = :itself.to_proc + end + + assert_equal(1, RefinedScope::ITSELF[1]) + RUBY + end + private def eval_using(mod, s) diff --git a/vm_method.c b/vm_method.c index c1793c102c..5d5d4884c0 100644 --- a/vm_method.c +++ b/vm_method.c @@ -1955,7 +1955,6 @@ resolve_refined_method(VALUE refinements, const rb_method_entry_t *me, VALUE *de tmp_me = me->def->body.refined.orig_me; if (tmp_me) { - if (defined_class_ptr) *defined_class_ptr = tmp_me->defined_class; return tmp_me; }