summaryrefslogtreecommitdiff
path: root/test/pending/continuations-run
diff options
context:
space:
mode:
authorTiark Rompf <tiark.rompf@epfl.ch>2010-03-11 16:55:38 +0000
committerTiark Rompf <tiark.rompf@epfl.ch>2010-03-11 16:55:38 +0000
commitf584d243487dcd1214291167707e2f53fef5ab5e (patch)
treeaf3e926d301193b259d27567470b4c483efbecbe /test/pending/continuations-run
parent356540e284e9c9407151a44afdb9480d8eb137a1 (diff)
downloadscala-f584d243487dcd1214291167707e2f53fef5ab5e.tar.gz
scala-f584d243487dcd1214291167707e2f53fef5ab5e.tar.bz2
scala-f584d243487dcd1214291167707e2f53fef5ab5e.zip
moved the continuations plugin into trunk.
Diffstat (limited to 'test/pending/continuations-run')
-rw-r--r--test/pending/continuations-run/example0.scala9
-rw-r--r--test/pending/continuations-run/example1.scala9
-rw-r--r--test/pending/continuations-run/example16.scala9
-rw-r--r--test/pending/continuations-run/example2.scala9
-rw-r--r--test/pending/continuations-run/example3.scala9
-rw-r--r--test/pending/continuations-run/example4.scala9
-rw-r--r--test/pending/continuations-run/example5.scala9
-rw-r--r--test/pending/continuations-run/example6.scala9
-rw-r--r--test/pending/continuations-run/example7.scala9
-rw-r--r--test/pending/continuations-run/example8.scala9
-rw-r--r--test/pending/continuations-run/example9.scala9
-rw-r--r--test/pending/continuations-run/foreach.check4
-rw-r--r--test/pending/continuations-run/foreach.scala33
-rw-r--r--test/pending/continuations-run/function6.scala15
-rw-r--r--test/pending/continuations-run/select-run.log20
-rw-r--r--test/pending/continuations-run/select.check2
-rw-r--r--test/pending/continuations-run/select.scala21
-rw-r--r--test/pending/continuations-run/t2864.scala18
-rw-r--r--test/pending/continuations-run/t2934.scala14
19 files changed, 226 insertions, 0 deletions
diff --git a/test/pending/continuations-run/example0.scala b/test/pending/continuations-run/example0.scala
new file mode 100644
index 0000000000..44b1331339
--- /dev/null
+++ b/test/pending/continuations-run/example0.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test0.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example1.scala b/test/pending/continuations-run/example1.scala
new file mode 100644
index 0000000000..195a98e59f
--- /dev/null
+++ b/test/pending/continuations-run/example1.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test1.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example16.scala b/test/pending/continuations-run/example16.scala
new file mode 100644
index 0000000000..5eb64046ed
--- /dev/null
+++ b/test/pending/continuations-run/example16.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test16Printf.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example2.scala b/test/pending/continuations-run/example2.scala
new file mode 100644
index 0000000000..0d96257c40
--- /dev/null
+++ b/test/pending/continuations-run/example2.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test2.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example3.scala b/test/pending/continuations-run/example3.scala
new file mode 100644
index 0000000000..3f5052a4ad
--- /dev/null
+++ b/test/pending/continuations-run/example3.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test3.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example4.scala b/test/pending/continuations-run/example4.scala
new file mode 100644
index 0000000000..66c6774791
--- /dev/null
+++ b/test/pending/continuations-run/example4.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test4.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example5.scala b/test/pending/continuations-run/example5.scala
new file mode 100644
index 0000000000..0994bdee8a
--- /dev/null
+++ b/test/pending/continuations-run/example5.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test5.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example6.scala b/test/pending/continuations-run/example6.scala
new file mode 100644
index 0000000000..5207e3fc68
--- /dev/null
+++ b/test/pending/continuations-run/example6.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test6.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example7.scala b/test/pending/continuations-run/example7.scala
new file mode 100644
index 0000000000..fb22387dac
--- /dev/null
+++ b/test/pending/continuations-run/example7.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test7.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example8.scala b/test/pending/continuations-run/example8.scala
new file mode 100644
index 0000000000..8e21e6c674
--- /dev/null
+++ b/test/pending/continuations-run/example8.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test8.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/example9.scala b/test/pending/continuations-run/example9.scala
new file mode 100644
index 0000000000..0f27c686f7
--- /dev/null
+++ b/test/pending/continuations-run/example9.scala
@@ -0,0 +1,9 @@
+// $Id$
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+ examples.continuations.Test9Monads.main(args)
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/foreach.check b/test/pending/continuations-run/foreach.check
new file mode 100644
index 0000000000..9bab7a2eed
--- /dev/null
+++ b/test/pending/continuations-run/foreach.check
@@ -0,0 +1,4 @@
+1
+2
+3
+enough is enough \ No newline at end of file
diff --git a/test/pending/continuations-run/foreach.scala b/test/pending/continuations-run/foreach.scala
new file mode 100644
index 0000000000..4daade452c
--- /dev/null
+++ b/test/pending/continuations-run/foreach.scala
@@ -0,0 +1,33 @@
+// $Id$
+
+import scala.util.continuations._
+
+import scala.util.continuations.Loops._
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+
+
+ reset {
+
+ val list = List(1,2,3,4,5)
+
+ for (x <- list.suspendable) {
+
+ shift { k: (Unit => Unit) =>
+ println(x)
+ if (x < 3)
+ k()
+ else
+ println("enough is enough")
+ }
+
+ }
+
+ }
+
+
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/function6.scala b/test/pending/continuations-run/function6.scala
new file mode 100644
index 0000000000..f1296ae410
--- /dev/null
+++ b/test/pending/continuations-run/function6.scala
@@ -0,0 +1,15 @@
+// $Id$
+
+import scala.util.continuations._
+
+
+object Test {
+
+ def main(args: Array[String]): Any = {
+
+ val g: PartialFunction[Int, Int @cps[Int,Int]] = { case x => 7 }
+
+ println(reset(g(2)))
+ }
+
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/select-run.log b/test/pending/continuations-run/select-run.log
new file mode 100644
index 0000000000..6faa868ce3
--- /dev/null
+++ b/test/pending/continuations-run/select-run.log
@@ -0,0 +1,20 @@
+8
+java.lang.ClassCastException: scala.util.continuations.ControlContext cannot be cast to java.lang.Integer
+ at scala.runtime.BoxesRunTime.unboxToInt(Unknown Source)
+ at Test$$anonfun$main$2.apply(select.scala:18)
+ at Test$$anonfun$main$2.apply(select.scala:18)
+ at scala.util.continuations.ControlContext$.reset(ControlContext.scala:65)
+ at Test$.main(select.scala:18)
+ at Test.main(select.scala)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:55)
+ at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:22)
+ at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:61)
+ at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:55)
+ at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:61)
+ at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:33)
+ at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:153)
+ at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
diff --git a/test/pending/continuations-run/select.check b/test/pending/continuations-run/select.check
new file mode 100644
index 0000000000..620ce84217
--- /dev/null
+++ b/test/pending/continuations-run/select.check
@@ -0,0 +1,2 @@
+8
+8 \ No newline at end of file
diff --git a/test/pending/continuations-run/select.scala b/test/pending/continuations-run/select.scala
new file mode 100644
index 0000000000..faf5842329
--- /dev/null
+++ b/test/pending/continuations-run/select.scala
@@ -0,0 +1,21 @@
+// $Id$
+
+import scala.util.continuations._
+
+
+object Test {
+
+ class Bla {
+ val x = 8
+ }
+
+ def bla = shift { k:(Bla=>Bla) => k(new Bla) }
+
+ // TODO: check whether this also applies to a::shift { k => ... }
+
+ def main(args: Array[String]) = {
+ println(reset(bla).x)
+ println(reset(bla.x))
+ }
+
+}
diff --git a/test/pending/continuations-run/t2864.scala b/test/pending/continuations-run/t2864.scala
new file mode 100644
index 0000000000..291e739332
--- /dev/null
+++ b/test/pending/continuations-run/t2864.scala
@@ -0,0 +1,18 @@
+// $Id$
+
+import scala.util.continuations._
+
+
+
+object Test {
+
+ def double[B](n : Int)(k : Int => B) : B = k(n * 2)
+
+ def main(args : Array[String]) {
+ reset {
+ val result1 = shift(double[Unit](100))
+ val result2 = shift(double[Unit](result1))
+ println(result2)
+ }
+ }
+} \ No newline at end of file
diff --git a/test/pending/continuations-run/t2934.scala b/test/pending/continuations-run/t2934.scala
new file mode 100644
index 0000000000..6089355bcf
--- /dev/null
+++ b/test/pending/continuations-run/t2934.scala
@@ -0,0 +1,14 @@
+// $Id$
+
+import scala.util.continuations._
+
+
+object Test {
+
+ def main(args : Array[String]) {
+ println(reset {
+ val x = shift(List(1,2,3).flatMap[Int, List[Int]])
+ List(x + 2)
+ })
+ }
+} \ No newline at end of file