Bug #16242
Updated by osyo (manga osyo) about 5 years ago
Refinements method call to failed with `prepend`. ## No problem ```ruby module M # Methods that you want to call only within this context refine M do def refine_method "refine_method" end end using M def hoge # OK: `refine_method` calls the method refine_method end end class X include M end pp X.new.hoge # => "refine_method" ``` ## Problem No problem * If `prepend` another module, the search for `refine_method` fails ```ruby module OtherM end module M # Added prepend prepend OtherM refine M do def refine_method "refine_method" end end using M def hoge # Error: `hoge': undefined local variable or method `refine_method' for #<X:0x00007fa05a024390> (NameError) refine_method end end class X include M end # Error pp X.new.hoge ``` ## Environment Reproduced in the following environment. ```ruby RUBY_VERSION # => "2.7.0" RUBY_REVISION # => "02dfa0f16361c498e0f529054b00e3e09730892b" RUBY_PLATFORM # => "x86_64-darwin17" ``` You can also confirm that it is reproduced here. https://wandbox.org/permlink/I6tQesDRntT7JZqB