[#10853] Why limit class def to a constant or colon node? — Charles Oliver Nutter <charles.nutter@...>

Is there a historical reason why I can't do something like these:

12 messages 2007/04/03

[#10933] Cannot build with extra library path if previous version already installed — <noreply@...>

Bugs item #10140, was opened at 2007-04-16 17:32

10 messages 2007/04/16
[#10934] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — nobu@... 2007/04/16

Hi,

[#10960] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — "Michal Suchanek" <hramrach@...> 2007/04/18

On 4/16/07, nobu@ruby-lang.org <nobu@ruby-lang.org> wrote:

[#10967] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — Nobuyoshi Nakada <nobu@...> 2007/04/19

Hi,

[#10970] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — "Michal Suchanek" <hramrach@...> 2007/04/19

On 4/19/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:> Hi,>> At Wed, 18 Apr 2007 20:21:44 +0900,> Michal Suchanek wrote in [ruby-core:10960]:> > Yes. And this should also apply to extensions. The mkmf tests are now> > fine but the extension is linked with -L/sw/lib before -L../..>> Indeed.>>> Index: configure.in> ===================================================================> --- configure.in (revision 12191)> +++ configure.in (working copy)> @@ -1385,5 +1385,4 @@ if test "$enable_rpath" = yes; then> fi>> -LDFLAGS="-L. $LDFLAGS"> AC_SUBST(ARCHFILE)>This would break the previous fix so I did not even try to apply this ^

[#11003] miniruby loads extensions from already installed ruby — <noreply@...>

Bugs item #10303, was opened at 2007-04-23 10:44

10 messages 2007/04/23

[#11025] gsub with backslash characters in replacement string — "Adam Bozanich" <adam.boz@...>

Hello, spotted this one the other day:

10 messages 2007/04/26

Re: Why limit class def to a constant or colon node?

From: Charles Oliver Nutter <charles.nutter@...>
Date: 2007-04-09 21:57:11 UTC
List: ruby-core #10901
Nobuyoshi Nakada wrote:
> 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.

So is it a parsing concern? Already there's extra logic in the 
left-hand-side to properly scope the constant name (::MyClass, 
MyModule::MyClass) so it seems like expanding that to do a method call 
would be ok too.

Also, I don't think it would even make sense to have a call on the LHS 
followed by the "extends" syntax...if it's making a call, you'd expect 
the class has already been created and already extends something.

class my_class() < String # superclass mismatch or parser error
class my_class() # parses ok, runtime error if it doesn't return a class
class my_class < String # same error as first example

LHS also already does support making some calls too, just not to finally 
get the class (only for scoping purposes as far as I can tell):

def foo; String; end
class foo::Blah; end
String::Blah.new # ok, class def uses foo call to scope Blah

It doesn't seem like we'd have to go far to just support method calls 
directly as the first token after "class".

- Charlie

In This Thread