Skip Menu |
Report information
Id: 125716
Status: open
Priority: 0/
Queue: perl6

Owner: Nobody
Requestors: elizabeth <liz [at] dijkmat.nl>
FROGGS.de <email [at] froggs.de>
Cc:
AdminCc:

Severity: (no value)
Tag: (no value)
Platform: (no value)
Patch Status: (no value)
VM: (no value)



Subject: LTA error on typo
To: rakudobug [...] perl.org
From: Elizabeth Mattijsen <liz [...] dijkmat.nl>
Date: Wed, 29 Jul 2015 12:24:41 +0200
Download (untitled) / with headers
text/plain 1.4k
[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
Date: Wed, 29 Jul 2015 12:58:38 +0200
From: Tobias Leich <email [...] froggs.de>
Subject: [BUG] typo in routine declarator exposes internal error message
To: rakudobug [...] perl.org
Download (untitled) / with headers
text/plain 434b
m: role A { mutli method BUILD() { say "A" } }; class B does A { method BUILD { say "B" } }; B.new # lol rakudo-moar 646b90: OUTPUT«===SORRY!===␤Cannot find method 'collisions'␤» m: role A { mutli method BUILD() { say "A" } }; A.new rakudo-moar 646b90: OUTPUT«===SORRY!=== Error while compiling /tmp/1eXnCAt3OX␤Undeclared routine:␤ mutli used at line 1␤␤» So it only happens when the role is consumed by a class.
From: Elizabeth Mattijsen <liz [...] dijkmat.nl>
To: "Tobias Leich (via RT)" <perl6-bugs-followup [...] perl.org>
Subject: Re: [perl #125717] [BUG] typo in routine declarator exposes internal error message
Date: Wed, 29 Jul 2015 13:07:28 +0200
Download (untitled) / with headers
text/plain 818b
Please merge with #125716 or vice-versa :-) Show quoted text
> On 29 Jul 2015, at 12:58, Tobias Leich (via RT) <perl6-bugs-followup@perl.org> wrote: > > # New Ticket Created by Tobias Leich > # Please include the string: [perl #125717] > # in the subject line of all future correspondence about this issue. > # <URL: https://rt.perl.org/Ticket/Display.html?id=125717 > > > > m: role A { mutli method BUILD() { say "A" } }; class B does A { method > BUILD { say "B" } }; B.new # lol > rakudo-moar 646b90: OUTPUT«===SORRY!===␤Cannot find method 'collisions'␤» > > m: role A { mutli method BUILD() { say "A" } }; A.new > rakudo-moar 646b90: OUTPUT«===SORRY!=== Error while compiling > /tmp/1eXnCAt3OX␤Undeclared routine:␤ mutli used at line 1␤␤» > > So it only happens when the role is consumed by a class.
I guess this is not better, but it's progress:

Show quoted text
===SORRY!=== Error while compiling -e
Could not instantiate role 'A':
Cannot invoke this object (REPR: Null; VMNull)
at -e:1



On 2015-07-29 04:08:02, elizabeth wrote:
Show quoted text
> Please merge with #125716 or vice-versa :-)
>
> > On 29 Jul 2015, at 12:58, Tobias Leich (via RT) <perl6-bugs-
> > followup@perl.org> wrote:
> >
> > # New Ticket Created by Tobias Leich
> > # Please include the string: [perl #125717]
> > # in the subject line of all future correspondence about this issue.
> > # <URL: https://rt.perl.org/Ticket/Display.html?id=125717 >
> >
> >
> > m: role A { mutli method BUILD() { say "A" } }; class B does A {
> > method
> > BUILD { say "B" } }; B.new # lol
> > rakudo-moar 646b90: OUTPUT«===SORRY!===␤Cannot find method
> > 'collisions'␤»
> >
> > m: role A { mutli method BUILD() { say "A" } }; A.new
> > rakudo-moar 646b90: OUTPUT«===SORRY!=== Error while compiling
> > /tmp/1eXnCAt3OX␤Undeclared routine:␤ mutli used at line 1␤␤»
> >
> > So it only happens when the role is consumed by a class.




This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org