On Sat, Nov 3, 2012 at 10:45 AM, SASADA Koichi <ko1 / atdot.net> wrote:
> # is that corner case? :)
>
> class C_User2
>   def x
>     2.times{
>       C.new.foo
>       self.class.send(:using, RefineC)
>     }
>   end
> end

I commented on the other bug about how refinements need to be temporal
to limit their impact (implementation-wise), but there are obvious
flaws in making them temporal too. Your example above shows how
ordering can change what method will be called. My example was using
calls that happen up-hierarchy in different files.

Even if we ignore implementation/performance concerns (and there are
lots of them), there are many behavioral problems like this with
refinements.