On Sat Jun 19 03:15:52 2010, moritz wrote:
> 12:11 <@moritz_> rakudo: class A { multi method b($x where { 0 } ) { }
> }; A.new.b(4)
> 12:11 <+p6eval> rakudo 92e914: OUTPUT«No candidates found to invoke␤  in
> main  program body at line 11:/tmp/jdOpy6exrT␤»
> 12:13  * moritz_ submits rakudobug about LTA error message
> 
> It should mention at least:
> 1) the name of the method
> 2) the type of the invocant
> 
> bonus points (and a beer at our next meeting) for listing candidates
> like failed multi sub dispatch does it.

So, taking a more interesting example:

class A {
    multi method b($x) { 1 }
    multi method b($x, $y) { 2 }
}
say A.new.b();

Running this now gives the far, far more informative:

No candidates found to invoke for method 'b' on object of type 'A';
available candidates have signatures:
:(Mu : Any $x;; *%_)
:(Mu : Any $x, Any $y;; *%_)
  in main program body at line 5:test.p6

Good enough for beer? ;-)

Given to moritz++ in case this is something that is testable or should
be tested.

Jonathan

Reply via email to