On Fri Nov 06 15:10:05 2015, rayd...@cyberuniverses.com wrote: > calling multis in the same class with .* doesn't work: > 22:10 raydiak m: class C { multi method m () { "A" }; multi method m > () { "B" } }; C.*m > 22:10 camelia rakudo-moar 5fda5d: OUTPUT«Ambiguous call to 'm'; > these signatures all match::(C $: *%_):(C $: *%_) in block <unit> > at /tmp/Uz81rcg0a8:1» > > from different classes, it does work: > 22:16 raydiak m: class B { multi method m () {"B"} }; class C is B { > multi method m () {"C"} }; say C.*m > 22:16 camelia rakudo-moar 5fda5d: OUTPUT«(C B)» > > http://design.perl6.org/S12.html#Calling_sets_of_methods seems to > suggest .* ought to work with any arrangement of multis and > inheritance > > http://irclog.perlgeek.de/perl6/2015-11-06#i_11497077 through 22:28
The current behavior was ruled correct; .?, .+ and .* are about single dispatch, not multiple dispatch. See https://rt.perl.org/Ticket/Display.html?id=119193 which was also raising this issue for more.