From: mame@... Date: 2017-10-30T07:27:44+00:00 Subject: [ruby-core:83613] [Ruby trunk Bug#14068] Unused refinement breaks method search Issue #14068 has been reported by mame (Yusuke Endoh). ---------------------------------------- Bug #14068: Unused refinement breaks method search https://bugs.ruby-lang.org/issues/14068 * Author: mame (Yusuke Endoh) * Status: Open * Priority: Normal * Assignee: shugo (Shugo Maeda) * Target version: 2.5 * ruby -v: ruby 2.5.0dev (2017-10-30 trunk 60565) [x86_64-linux] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- The following is an expected behavior. ~~~ module M1 def foo p "M1#foo" end end module M2 end include M1 include M2 foo() #=> "M1#foo" ~~~ But, defining UnusedRefinement that refines M2, breaks the behavior, even if it is entirely not used. ~~~ module M1 def foo p "M1#foo" end end module M2 end module UnusedRefinement # <=== INSERTED refine(M2) do def foo p "M2#foo" end end end include M1 include M2 foo() #=> test.rb:20:in `
': undefined method `foo' for main:Object (NoMethodError) ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: