From: "shugo (Shugo Maeda)" <redmine@...> Date: 2012-11-05T11:57:45+09:00 Subject: [ruby-core:48871] [ruby-trunk - Bug #7271] Refinement doesn't seem lexical Issue #7271 has been updated by shugo (Shugo Maeda). ko1 (Koichi Sasada) wrote: > C_User#y is refined. Is that intentional? Yes, it's intentional. Refinements are activated when C_User is reopend. I'm not sure whether is'a good idea or not, but if C_User.module_eval is affected by refinements, it seems natural reopened definitions of C_User are also affected. ---------------------------------------- Bug #7271: Refinement doesn't seem lexical https://bugs.ruby-lang.org/issues/7271#change-32359 Author: ko1 (Koichi Sasada) Status: Assigned Priority: Normal Assignee: shugo (Shugo Maeda) Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-11-01 trunk 37404) [i386-mswin32_100] C_User#y is refined. Is that intentional? class C def foo p :C_foo end end module RefineC refine C do def foo p :RefineC_foo super end end end class C_User using RefineC def x C.new.foo end end class C_User def y C.new.foo end end C_User.new.x C_User.new.y #=> :RefineC_foo :C_foo :RefineC_foo :C_foo -- http://bugs.ruby-lang.org/