summaryrefslogtreecommitdiff
path: root/test/files/neg/tailrec-2.check
Commit message (Collapse)AuthorAgeFilesLines
* Limit unnecessary calls to Type#toString.Paul Phillips2013-05-081-1/+1
| | | | | | | | | | | | | Logging revealed a few thousand calls to the often expensive Type#toString emerging from tailcalls. The error message was being generated for all methods even though it was only issued in rare cases (and for the particular tailrec failure which made the call, extremely rare.) The remaining boatload of unnecessary Type#toString calls are much harder to fix due to the design of "AbsTypeError" and the fact that the compiler approaches mutability like a cat approaches a loaded gun. See SI-6149.
* Debugging output tweaks.Paul Phillips2012-05-141-1/+1
| | | | And undeprecated Positional.
* Fix for tailcall transform/recognition bugs.Paul Phillips2012-03-111-2/+5
| | | | Closes SI-3275, SI-5455.
* A pretty severe bug in the recognition of tail ...Paul Phillips2011-01-101-2/+2
| | | | | | | | | | | | | | | | | | | | A pretty severe bug in the recognition of tail call elimination. It turns out that Tailcalls will perform "partial elimination" in situations such as: @annotation.tailrec final def f(x: Int): Int = f(f(x)) The outer call to f1 becomes a jump, but the inner call remains as it was. I implemented @tailrec under the impression that if the optimization had taken place, it had gone all the way. So this is now fixed with a direct examination of the rewritten tree. While I was in there I threw in some improved error reporting: the error positioning is now on the call which is not in tail position rather than the method declaration. Closes #4135, no review.
* Some more improvement on the error messages whe...Paul Phillips2010-07-021-0/+4
Some more improvement on the error messages when @tailrec fails. Now it gives a sensible message if the recursive target is actually a supertype of this, rather than saying the call is not in tail position. No review.