On 2/13/06, Juerd <[EMAIL PROTECTED]> wrote:
> Luke Palmer skribis 2006-02-13  9:36 (+0000):
> > That's a compile time error.  Both "has" declarations generate a
> > method "a", so it is a method conflict.
>
> Doesn't normally double declaration end in the later masking/overriding
> the earlier declaration, with a warning, but not an error?

Does it?

    role Foo {
        method bar() { "x" }
    }
    role Bar {
        method bar() { "y" }
    }

    class Baz {
        does Foo;
        does Bar;  # does this count as double declaration?
    }

I'd say we're going more toward the conflict side of things.  That is,
I'd expect:

    sub foo() { 1 }
    sub foo() { 2 }

To be an error.  However, I'd expect:

    sub foo() { 1 }
    &foo ::= sub () { 2 };

Not to be.

Luke

Reply via email to