There's a subtle problem / feature resulting from the "is rw" trait that
may be so obvious that I'm making a fool of myself, or it might be that
it's not yet occurred, but I don't recall seeing discussion of it.

The simple case is:

        sub foo(X $i is rw) {...}
        class X {...}
        class Y {...}
        my Y $var = 'something';
        foo($var);

In this case, something kind of interesting has to happen.

Either the signature checking has to verify that Y isa X (and thus can
be used polymorphically as X, not just converted to X) ...

... or, it has to do something of the sort:

        { my X $tmp = $var; foo($tmp); $var = $tmp; }

which has its own problems, of course.

Were either of these the intention or am I missing something?

"is ref" probably has the same concern.
-- 
Aaron Sherman <[EMAIL PROTECTED]>
Senior Systems Engineer and Toolsmith
"It's the sound of a satellite saying, 'get me down!'" -Shriekback


Reply via email to