summaryrefslogtreecommitdiff
path: root/test/files/neg/tailrec-3.scala
Commit message (Collapse)AuthorAgeFilesLines
* A pretty severe bug in the recognition of tail ...Paul Phillips2011-01-101-0/+14
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.