multi method Num()
{
die "Cannot call Num on Vector!";
}
It's not the most elegant error message, but it will do. Adding that switches from the fairly useless
Method 'Num' not found for invocant of class 'Vector'
in Main (file src/gen_setting.pm, line 206)
message to the extremely interesting
Cannot call Num on Vector!
in method Vector::Num (file lib/Vector.pm, line 24)
called from method Polynomial::new (file , line )
called from sub infix:* (file lib/Polynomial.pm, line 106)
called from Main (file , line )
Aha! Not a Rakudo bug at all, this is a legit issue. When I added the fix to remove trailing zero coefficients, I wrote
@x[*-1] == 0
to check for them. Odds seem very good that ==
calls .Num
. So... a change to .abs
here is probably more realistic, anyway. (Maybe? I need to ponder that.)Hmmm... that moves the error elsewhere, to (according to the backtrace)
infix:+ (file , line )
. I need to go to bed now, so the final debugging will have to wait. But at a minimum, Moritz's suggestion of adding a .Num
that dies appears to be a valuable Perl 6 debugging trick.
No comments:
Post a Comment