diff options
Diffstat (limited to 'src/library/scala/util/control/TailRec.scala')
-rw-r--r-- | src/library/scala/util/control/TailRec.scala | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/src/library/scala/util/control/TailRec.scala b/src/library/scala/util/control/TailRec.scala deleted file mode 100644 index db6cbfa2ed..0000000000 --- a/src/library/scala/util/control/TailRec.scala +++ /dev/null @@ -1,24 +0,0 @@ -package scala.util.control - -abstract class TailRec[+A] - -object TailRec { - - case class Call[A](rest: () => TailRec[A]) extends TailRec[A] - case class Done[A](result: A) extends TailRec[A] - - def tailcall[A](rest: => TailRec[A]) = new Call(() => rest) - def done [A](result: A) = new Done(result) - def trampoline[A](body: TailRec[A]): A = { - def loop(body: TailRec[A]): A = body match { - case Call(rest) => loop(rest()) - case Done(result) => result - } - loop(body) - } - def loop[A](body: TailRec[A]): A = body match { - case Call(rest) => loop[A](rest()) - case Done(result) => result - } -} - |