# New Ticket Created by  Elizabeth Mattijsen 
# Please include the string:  [perl #125716]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=125716 >


[11:37:50]  <FROGGS>    m: role A { mutli method BUILD() { say "A" } }; class B 
does A { method BUILD { say "B" } }; B.new # lol
[11:37:50]  <+camelia>  rakudo-moar 646b90: OUTPUT«===SORRY!===␤Cannot find 
method 'collisions'␤»
[11:38:19]  <lizmat>    mutli ?
[11:38:25]  <FROGGS>    tpyo

Expanding on this a bit more:

$ 6l 'role A { mutli method BUILD() { say "A" } }; class B does A { } }'
Cannot find method 'collisions'
   at src/gen/m-Metamodel.nqp:2634  (blib/Perl6/Metamodel.moarvm:apply:69)
 from src/gen/m-Metamodel.nqp:2812  (blib/Perl6/Metamodel.moarvm:compose:96)
 from src/Perl6/World.nqp:2435  (blib/Perl6/World.moarvm:pkg_compose:12)
 from src/gen/m-Perl6-Actions.nqp:2161  
(blib/Perl6/Actions.moarvm:package_def:1209)


It looks like $to_compose_meta in src/Perl6/Metamodel/RoleToClassApplier.nqp, 
line 63 is not of a class that has a .collisions method (it *is* instantiated, 
but as WHAT I have not been able to determine).


Compare this with the error where we just have the role definition:

$ 6l 'role A { mutli method BUILD() { say "A" } }'
Undeclared routine:
    mutli used at line 1

   at src/gen/m-CORE.setting:15420  
(/Users/liz/Github/rakudo.moar/install/share/perl6/runtime/./CORE.setting.moarvm:throw:193)
 from src/Perl6/Grammar.nqp:4282  (blib/Perl6/Grammar.moarvm:cry_sorrows:129)
 from src/Perl6/Grammar.nqp:1094  (blib/Perl6/Grammar.moarvm:comp_unit:1101)
 from src/Perl6/Grammar.nqp:395  (blib/Perl6/Grammar.moarvm:TOP:491)

One would expect the above code to do the same.



Liz

Reply via email to