Actions
Bug #11246
closedrefine block doesn't respect "lexical" refinement information
Bug #11246:
refine block doesn't respect "lexical" refinement information
Description
The following program making two refinements refine class C.
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 #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?
Actions