From 166c496d5784d0be3611b270d9eba39f1273e048 Mon Sep 17 00:00:00 2001 From: Tiark Rompf Date: Tue, 16 Mar 2010 08:19:59 +0000 Subject: added support for continuations in try/catch bl... added support for continuations in try/catch blocks. review by community. --- test/files/continuations-run/trycatch1.scala | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 test/files/continuations-run/trycatch1.scala (limited to 'test/files/continuations-run/trycatch1.scala') diff --git a/test/files/continuations-run/trycatch1.scala b/test/files/continuations-run/trycatch1.scala new file mode 100644 index 0000000000..ade13794e3 --- /dev/null +++ b/test/files/continuations-run/trycatch1.scala @@ -0,0 +1,48 @@ +// $Id$ + +import scala.util.continuations._ + +object Test { + + def fatal: Int = throw new Exception() + + def foo1 = try { + fatal + shift((k: Int=>Int) => k(7)) + } catch { + case ex => + 9 + } + + def foo2 = try { + shift((k: Int=>Int) => k(7)) + fatal + } catch { + case ex => + 9 + } + + def bar1 = try { + fatal + 7 + } catch { + case ex => + shiftUnit0[Int,Int](9) // regular shift causes no-symbol doesn't have owner + } + + def bar2 = try { + 7 + fatal + } catch { + case ex => + shiftUnit0[Int,Int](9) // regular shift causes no-symbol doesn't have owner + } + + def main(args: Array[String]): Unit = { + println(reset { foo1 + 3 }) + println(reset { foo2 + 3 }) + println(reset { bar1 + 3 }) + println(reset { bar2 + 3 }) + } + +} \ No newline at end of file -- cgit v1.2.3