aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/tailcall
Commit message (Collapse)AuthorAgeFilesLines
* Make all dotty tests end in newlineDmitry Petrashko2015-04-092-2/+2
|
* Addressing review comments of #336Dmitry Petrashko2015-02-031-1/+1
|
* Even more careful handling of tailcalls.Dmitry Petrashko2015-02-031-5/+21
| | | | See i321 doc for description of problem and decision taken.
* Fix i321, tail call needs to be careful with abstracting over class type ↵Dmitry Petrashko2015-02-031-0/+10
| | | | | | arguments. Or it could lead to Ycheck error that was triggered in #321.
* Moved pending tests that work into pos and neg.Martin Odersky2014-11-171-0/+36
| | | | | | | One test (t2613) required lifting a hard recursion limit in findMember (used for debug only, will be removed in the future). The same test also requires -Yno-deep-subtypes to be reset, so it's in pos_special instead of pos.
* LambdaLift checks now explicitly for references to labels outside scope.Martin Odersky2014-10-261-10/+0
| | | | | Nested methods cannot refer to labels in theior environment. Needs a fix in TailCalls. Moved failing test to pending.
* Handle return in tailcalls.Martin Odersky2014-09-121-0/+5
| | | | | Avoids characterizing the "from" link in a return as a tail call reference.
* Add test for tailcallDmitry Petrashko2014-07-221-0/+4
| | | | Test for order of type parameters in recursive call
* Fix to rewire typesMartin Odersky2014-07-171-2/+6
| | | | | | | t6574 has a new test where we produce identical code in an if-then-else. This broke the rewiring logic before, and is fixed now. Also, more comments and test cases.
* TailRec phase and tests for it.Dmitry Petrashko2014-04-118-0/+124
Ported tailcall phase from scalac with such changes: - all transformation is done in the phase itself (previously half of the work was done in backend) - it is now able to run before uncurry - it is now a treeTransform - renamed to tailrec to make it more obvious that this phase transforms only recursive calls. For now this is a single phase which speculatively transforms DefDefs. Speculation can be potentially removed by splitting into 2 phases: one detecting which methods should be transformed second performing transformation. But, as transformation requires as same amount of work as detection, I believe it will be simpler to maintain it as a single phase. Conflicts: tests/pos/typers.scala