diff options
author | Tiark Rompf <tiark.rompf@epfl.ch> | 2012-02-19 23:52:57 +0100 |
---|---|---|
committer | Tiark Rompf <tiark.rompf@epfl.ch> | 2012-02-19 23:52:57 +0100 |
commit | b9ac439608eac6fd31082b14bac90064b42521dc (patch) | |
tree | b813e600cb2d2b0c883e3db01c5e506dd5930efe /test/files | |
parent | 91148376049a152edec12348ff9b7e9e93e6ebe1 (diff) | |
download | scala-b9ac439608eac6fd31082b14bac90064b42521dc.tar.gz scala-b9ac439608eac6fd31082b14bac90064b42521dc.tar.bz2 scala-b9ac439608eac6fd31082b14bac90064b42521dc.zip |
fixes SI-5506. better cps type propagation for polymorphic and multi-argument list methods.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/continuations-run/t5506.check | 7 | ||||
-rw-r--r-- | test/files/continuations-run/t5506.scala | 58 |
2 files changed, 65 insertions, 0 deletions
diff --git a/test/files/continuations-run/t5506.check b/test/files/continuations-run/t5506.check new file mode 100644 index 0000000000..38b76c63f1 --- /dev/null +++ b/test/files/continuations-run/t5506.check @@ -0,0 +1,7 @@ +List(1, 2, 3) +List(1, 2, 3) +List(1, 2, 3) +List(1, 2, 3) +List(1, 2, 3) +List(1, 2, 3) +List(1, 2, 3) diff --git a/test/files/continuations-run/t5506.scala b/test/files/continuations-run/t5506.scala new file mode 100644 index 0000000000..2b5c1118f7 --- /dev/null +++ b/test/files/continuations-run/t5506.scala @@ -0,0 +1,58 @@ +import scala.util.continuations._ + +object Test { + +def g: List[Int] @suspendable = List(1,2,3) + +def fp10: List[Int] @suspendable = { +g.map(x => x) +} + +def fp11: List[Int] @suspendable = { +val z = g.map(x => x) +z +} + + +def fp12: List[Int] @suspendable = { +val z = List(1,2,3) +z.map(x => x) +} + + + +def fp20: List[Int] @suspendable = { +g.map[Int,List[Int]](x => x) +} + + +def fp21: List[Int] @suspendable = { +val z = g.map[Int,List[Int]](x => x) +z +} + +def fp22: List[Int] @suspendable = { +val z = g.map[Int,List[Int]](x => x)(List.canBuildFrom[Int]) +z +} + +def fp23: List[Int] @suspendable = { +val z = g.map(x => x)(List.canBuildFrom[Int]) +z +} + + +def main(args: Array[String]) = { + reset { + println(fp10) + println(fp11) + println(fp12) + + println(fp20) + println(fp21) + println(fp22) + println(fp23) + } +} + +} |