Hi, I know I just raved about #liftweb error reporting on Twitter,
but... now that I found out what was wrong, I still have a gripe about
it. I am very unforgiving on error reporting logic, but most of the
time people's error handling is so hopeless that I just throw up my
arms and emit some mock Italian. When I bother to post this complaint,
it's because I think lift is doing great and I want to help improve
it.

The case occurs when a <lift:Foo.bar> tag fails to match the bar
method in Foo. The rendered red box (which is very nice) tells me that
the method was not found. However, it would be very handy if it
handled the special case of "method found but the signature is wrong".
As it is, I got the same message when I definitely had the method, per
se. Before I knew it, I was on a quest to find the outdated class
file, rebuilding here and there to make sure I had the war file in
synch with my code.

In my case, I hadn't specified the return type, and I was mistakenly
using foreach instead of flatMap inside the method, implicitly giving
Unit as return type. So lift was completely right, the method could
not be found. However, this is siding with the compiler against the
human, if you know what I mean. Also, since you cannot overload a
method by varying only the return type, it is a pretty safe assumption
that the mis-typed method is the one the user meant to use, especially
if it takes the correct argument list, too.

Kjetil

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to