# New Ticket Created by  "Carl Mäsak" 
# Please include the string:  [perl #101426]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=101426 >


<masak> nom: role R[::T = role Q[::S = role { method baz { say "OH
HAI" } }] { method bar { S.baz } }] { method foo { T.bar } };
R.new.foo
<p6eval> nom d59f09: OUTPUT«===SORRY!===␤Can only use get_who on a
SixModelObject␤»
<masak> b: role R[::T = role Q[::S = role { method baz { say "OH HAI"
} }] { method bar { S.baz } }] { method foo { T.bar } }; R.new.foo
<p6eval> b 1b7dd1: OUTPUT«OH HAI␤»
<jnthn> oh wow
<jnthn> It explodes in the weirdest place
<jnthn> Well, more silliest than anything.
<jnthn> masak: Guess you wanna know what's going on. Well, we
encounter the package. We then go and start parsing its signature. At
that point a $*PACKAGE is introduced, but nothing is bound to it yet.
When declaring Q, which should be installed in it, the package is thus
missing.
<jnthn> And it's nasty to fix because we tend to like to have seen the
traits before we go and create the type object (which the package
hangs off).
<jnthn> Because we want to know what the repr will be.
<jnthn> I guess really though Q should not be declared inside R
<jnthn> (e.g. it's not R::Q)
<jnthn> As we're in the signature.
<jnthn> Not in the body.
<masak> right.
<jnthn> spectesting a fix
<masak> \o/
* masak submits rakudobug

Reply via email to