> ----- Original Message -----
> From: "Damian Conway" <[EMAIL PROTECTED]>
> To: "Perl6" <[EMAIL PROTECTED]>
> Sent: Tuesday, March 11, 2003 9:35 PM
> Subject: Re: A6: overloading multis on constness of parameters
> 
> 
> > Joe Gottman wrote:
> >
> > >    Will it be possible in perl6 to overload multis on the const-ness of
> a
> > > parameter, like C++ does?  For instance,
> > >
> > >    multi getX(Foo $self:) returns Int {...} #const version
> > >    multi getX(Foo $self: is rw) returns Int is rw {...} #non-const
> version
> >
> > That second one would have to be:
> >
> >       multi getX(Foo $self is rw:) returns Int is rw {...}
> >
> >
> > Then we have the issue that Perl 6 objects can't really be "constant",
> > since C<is constant> is a compile-time trait of *containers*...really just
> > a "don't assign to this container" marker.
> >
> > However, within those limitations, I guess it's possible. After all, we
> have
> > to check for lvaluability of C<is rw> parameters anyway.
> 
>    How would I take a get a reference to the second one?  I assume I could
> get a reference to the first by
> 
>    $ref = &getX(Foo);

Well, if there's overloading based on traits, siglets must support
traits.  So, it would have to be:

    $ref = &getX(Foo is rw:);

(The first would be)

    $ref = &getX(Foo:);

Backwhacking those couldn't hurt, either.

Luke

Reply via email to