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

Reply via email to