Actions
Bug #20302
closedMultiple refinements cannot be applied to the same module
Description
If we are using multiple refinements for the Kernel module, it seems that only the last refinement is enabled.
In the following example, we can call f2
of M2, which is enabled later. but cannot call f1
of M1.
module M1
refine(Kernel) do
def f1 = :f1
end
end
module M2
refine(Kernel) do
def f2 = :f2
end
end
class Foo
using M1
using M2
def test
p f2 #=> :f2
p f1 # expected => :f1
# actual => undefined local variable or method 'f1' for an instance of Foo
end
end
Foo.new.test
Note that if I change refine(Kernel)
to refine(Object)
, it works as expected.
So I think there is a problem only when the refinement target is a module.
Actions
Like0
Like0