Kroeger Simon (ext) wrote:

>I'm puzzled:
>-----------------------
>class X
>  A = 1
>  def X.a
>    A
>  end
>end
>
>class Y < X
>  A = 2
>end
>
>class Z < X
>  A = 3
>  def Z.a
>    A
>  end
>end
>
>p X.a #=> 1
>p Y.a #=> 1
>p Z.a #=> 3
>-----------------------
>(ruby 1.8.2 (2004-12-25) [i386-mswin32])
>
>Shouldn't this yield at least a warning?
>Is this a feature?
>  
>
Since A is not a class variable (it's a local variable) it's saved in 
"X.a" closure. In Y class it doesn't exist, so it can't influence on 
"X.a" method.

PS I hope my crappy english doesn't mess things too much.