On Thu Sep 23 06:22:16 2010, masak wrote:
> <masak> rakudo: class A { method b { 'b' } }; my $a = A.new; my $b =
> &A::b.assuming($a); $b()
> <p6eval> rakudo 8156be: OUTPUT�Null PMC access in invoke() [...]
> <moritz_> LTA error
> <masak> rakudo: class A {}; my $a = A.new; &A::b.assuming($a)()
> <p6eval> rakudo 8156be: OUTPUT�Null PMC access in invoke() [...]
> * masak submits rakudobug
> <moritz_> rakudo: class A { our method b { 'b' } }; my $a = A.new;
> &A::b.assuming($a)()
> <p6eval> rakudo 8156be: ( no output )
> <masak> ash_++ and TimToady++ for discovering it.
15:43 < [Coke]> rakudo: class A { method b { 'b' } }; my $a = A.new; my
$b =
&A::b.assuming($a); $b()
15:43 <+p6eval> rakudo ce15be: OUTPUT«Method 'assuming' not found for
invocant
of class 'Any' in block <anon> at /tmp/6__8CGzj6s:1
in
<anon> at /tmp/6__8CGzj6s:1»
15:43 < [Coke]> is .assuming also gone?
15:43 < jnthn> No, assuming is there
15:43 < jnthn> But A::b is (correctly) not
15:44 < jnthn> The method has to be decalred "our" for that to work.
15:44 < [Coke]> rakudo: class A { our method b { 'b' } }; my $a = A.new;
my $b
= &A::b.assuming($a); $b()
15:44 <+p6eval> rakudo ce15be: ( no output )
15:44 < [Coke]> k.
15:44 < [Coke]> jnthn++
So, No more null PMC access.
Closable with tests.
--
Will "Coke" Coleda