diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2012-09-28 03:25:19 -0700 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2012-09-28 03:25:19 -0700 |
commit | 0614d2f512ad7b1b3885f81d9e6e779f447a6511 (patch) | |
tree | b515ad4420c96c709103e588e1e4c4c611a4297a /test/files/continuations-neg/t5314-return-reset.scala | |
parent | 6b630ebb57306572e176a646e5bec7f3132ff18e (diff) | |
parent | cd14c3087ceca8145c3013c2751648b936f1256d (diff) | |
download | scala-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.scala | 21 |
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() +} |