Hi,

At Wed, 4 Apr 2007 06:01:21 +0900,
Charles Oliver Nutter wrote in [ruby-core:10853]:
> Is there a historical reason why I can't do something like these:
> 
> x = String
> class x; end
> 
> or
> 
> def x; String; end
> class x(); end
> 
> or any other combination of an arbitrary syntactic construct that might 
> produce a class? Was it done to simplify parsing or evaluation of classes?

If there were can be an arbitrary expression, it conflicts
with the superclass notation.  Consider:

  class X < String

How do you see the above, X inherits String, or comparison
between X and String?  We concluded that parentheses around the
expression for a while ago.

> The reason I ask is for something in JRuby. In JRuby we can refer to 
> Java classes using a long-hand syntax:
> 
> java.lang.System

Hmmm, I'm interested in how the conflict is solved.

-- 
Nobu Nakada