# 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«123Too 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«123123Unhandled 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«123too many positional arguments: 2 passed, 1 expectedcurrent
instr.: 's_m' pc 375 ((file unknown):151102171) (/tmp/A02sifbAgA:1)»
Niecza has the correct answer here, I believe.