summaryrefslogtreecommitdiff
path: root/test/files/continuations-neg/t5314-return-reset.scala
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-09-28 03:25:19 -0700
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-09-28 03:25:19 -0700
commit0614d2f512ad7b1b3885f81d9e6e779f447a6511 (patch)
treeb515ad4420c96c709103e588e1e4c4c611a4297a /test/files/continuations-neg/t5314-return-reset.scala
parent6b630ebb57306572e176a646e5bec7f3132ff18e (diff)
parentcd14c3087ceca8145c3013c2751648b936f1256d (diff)
downloadscala-0614d2f512ad7b1b3885f81d9e6e779f447a6511.tar.gz
scala-0614d2f512ad7b1b3885f81d9e6e779f447a6511.tar.bz2
scala-0614d2f512ad7b1b3885f81d9e6e779f447a6511.zip
Merge pull request #994 from phaller/issue/5314
SI-5314 - CPS transform of return statement fails (resubmission of #987)
Diffstat (limited to 'test/files/continuations-neg/t5314-return-reset.scala')
-rw-r--r--test/files/continuations-neg/t5314-return-reset.scala21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/files/continuations-neg/t5314-return-reset.scala b/test/files/continuations-neg/t5314-return-reset.scala
new file mode 100644
index 0000000000..df9d58e4cb
--- /dev/null
+++ b/test/files/continuations-neg/t5314-return-reset.scala
@@ -0,0 +1,21 @@
+import scala.util.continuations._
+import scala.util.Random
+
+object Test extends App {
+ val rnd = new Random
+
+ def foo(x: Int): Int @cps[Int] = shift { k => k(x) }
+
+ def bar(x: Int): Int @cps[Int] = return foo(x)
+
+ def caller(): Int = {
+ val v: Int = reset {
+ val res: Int = bar(8)
+ if (rnd.nextInt(100) > 50) return 5 // not allowed, since method is calling `reset`
+ 42
+ }
+ v
+ }
+
+ caller()
+}