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.

Reply via email to