Still reproducible (2017.11, HEAD(5929887)) On 2015-03-22 05:17:48, moritz wrote: > moritz@pat:~/p6/rakudo>cat ack.p6 > proto a(int, int) {*}; > multi a(int $ where 0, int \n) { n + 1 }; > multi a(int \m, int $ where 0) { a m -1 , 1 }; > multi a(int \m, int \n) { > a m - 1, a m, n - 1 > }; > say a 3, 1 > > moritz@pat:~/p6/rakudo>./perl6-m ack.p6 > Cannot call a(3, 1); none of these signatures match: > (int $ where { ... }, int \n) > (int \m, int $ where { ... }) > (int \m, int \n) > in block <unit> at ack.p6:7 > > > When I replace every instance of 'int' with 'Int' in the test program, > it works (no dispatch errors), and produces the output "13\n".
[perl #124142] Something is off with multi dispatch, natives and where clauses
Aleks-Daniel Jakimenko-Aleksejev via RT Sat, 02 Dec 2017 05:36:27 -0800