diff options
author | Tiark Rompf <tiark.rompf@epfl.ch> | 2010-03-11 16:55:38 +0000 |
---|---|---|
committer | Tiark Rompf <tiark.rompf@epfl.ch> | 2010-03-11 16:55:38 +0000 |
commit | f584d243487dcd1214291167707e2f53fef5ab5e (patch) | |
tree | af3e926d301193b259d27567470b4c483efbecbe /test/files/continuations-run/while2.scala | |
parent | 356540e284e9c9407151a44afdb9480d8eb137a1 (diff) | |
download | scala-f584d243487dcd1214291167707e2f53fef5ab5e.tar.gz scala-f584d243487dcd1214291167707e2f53fef5ab5e.tar.bz2 scala-f584d243487dcd1214291167707e2f53fef5ab5e.zip |
moved the continuations plugin into trunk.
Diffstat (limited to 'test/files/continuations-run/while2.scala')
-rw-r--r-- | test/files/continuations-run/while2.scala | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/files/continuations-run/while2.scala b/test/files/continuations-run/while2.scala new file mode 100644 index 0000000000..f36288929e --- /dev/null +++ b/test/files/continuations-run/while2.scala @@ -0,0 +1,23 @@ +// $Id$ + +import scala.util.continuations._ + + +object Test { + + def foo1(): Int @cps[Unit] = 2 + def foo2(): Int @cps[Unit] = shift { k => println("up"); k(2); println("down") } + + def test(): Unit @cps[Unit] = { + var x = 0 + while (x < 9000) { // pick number large enough to require tail-call opt + x += (if (x % 1000 != 0) foo1() else foo2()) + } + println(x) + } + + def main(args: Array[String]): Any = { + reset(test()) + } + +}
\ No newline at end of file |