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


When feeding this code to rakudo, niecza, nqp:

my grammar G {
method s_m(*%n) { say(%n<a>, %n<b>, %n<c>) }
token TOP { <s_m(|hash(:a<1>, :c<3>), :b<2>)> }
}
G.s_m(|hash(:a<1>, :c<3>), :b<2>);
G.parse('');


The following happens:

rakudo e75a0a: OUTPUT«123␤Too many positional parameters passed; got 2 but
expected 1␤ in method s_m at /tmp/WoccMCN4lv:1␤ in regex TOP at
/tmp/WoccMCN4lv:1␤ in method parse at src/gen/CORE.setting:9647␤ in block
<anon> at /tmp/WoccMCN4lv:1␤␤»

niecza v18-5-g556574c: OUTPUT«123␤123␤Unhandled exception: Submatch to be
bound to s_m returned a Bool instead of a Cursor, violating the submatch
protocol.␤ at /tmp/UohDQXuKbo line 1 (G.TOP @ 6) ␤ at
/home/p6eval/niecza/lib/CORE.setting line 2884 (Grammar.parse @ 5) ␤ at
/tmp/UohDQX

nqp: OUTPUT«123␤too many positional arguments: 2 passed, 1 expected␤current
instr.: 's_m' pc 375 ((file unknown):151102171) (/tmp/A02sifbAgA:1)␤»

Niecza has the correct answer here, I believe.

Reply via email to