Project

General

Profile

Bug #11246

Updated by ko1 (Koichi Sasada) almost 9 years ago

The following program making two refinements refine class C. 

 ```ruby 
 class C 
   def foo 
     p C 
   end 
 end 

 module R1 
   refine C do 
     def foo 
       p R1 
       super 
     end 
   end 
 end 

 using R1 # 1 

 module R2 
   using R1 # 2 

   refine C do 
     # using R1 # 3 

     def bar 
       C.new.foo 
     end 
   end 
 end 

 using R2 

 C.new.bar 
 ``` 

 Without `using R1 # 3`, `C#foo` was called in `R2::C#bar`. 

 By `using R1 R21 #1` and `#2`, we declared that this lexical scope should use R1. However, it seems that this declaration is ignored. 

 Is it an intentional behavior? 

Back