From: John Lam (DLR) [mailto:jflam / microsoft.com]=20
> 2. Bad side effect during global constant assignment:
>=20
> class C
> end
>=20
> class << C
>   Bar =3D self
>   p name
> end
>=20
> class D
> end
>=20
> class << D
>   ::Foo =3D self
>   p name
> end

I think the following shows the bug slightly more clearly:

class E
  p name           #=3D> "E"
  class << self
    p name         #=3D> ""
    Foo =3D self
    p name         #=3D> ""
    ::Foo =3D self
    p name         #=3D> "Foo"
  end
  p name           #=3D> "E"
end