aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-11-26 18:58:03 +0100
committerJason Zaugg <jzaugg@gmail.com>2012-11-27 08:36:31 +0100
commit38c362b45fa3f5ae006ebdebaaf163c701313967 (patch)
tree63c7040e653813a08855fc79ceb64b7052ef63db
parent9ad8783d39848d2c5dc5a2a73ac8d54c2859dd0e (diff)
downloadscala-async-38c362b45fa3f5ae006ebdebaaf163c701313967.tar.gz
scala-async-38c362b45fa3f5ae006ebdebaaf163c701313967.tar.bz2
scala-async-38c362b45fa3f5ae006ebdebaaf163c701313967.zip
Test cases for named and default args.
-rw-r--r--src/test/scala/scala/async/run/anf/AnfTransformSpec.scala36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala b/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
index f274068..529386b 100644
--- a/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
+++ b/src/test/scala/scala/async/run/anf/AnfTransformSpec.scala
@@ -223,7 +223,8 @@ class AnfTransformSpec {
val result = async {
var i = 0
def next() = {
- i += 1; i
+ i += 1;
+ i
}
foo(next(), await(next()))
}
@@ -255,4 +256,37 @@ class AnfTransformSpec {
""".stripMargin
}
}
+
+ @Test
+ def namedArgumentsRespectEvaluationOrder() {
+ import scala.async.AsyncId.{async, await}
+ def foo(a: Int, b: Int) = (a, b)
+ val result = async {
+ var i = 0
+ def next() = {
+ i += 1;
+ i
+ }
+ foo(b = next(), a = await(next()))
+ }
+ result mustBe ((2, 1))
+ }
+
+ @Test
+ def namedAndDefaultArgumentsRespectEvaluationOrder() {
+ import scala.async.AsyncId.{async, await}
+ var i = 0
+ def next() = {
+ i += 1;
+ i
+ }
+ def foo(a: Int = next(), b: Int = next()) = (a, b)
+ async {
+ foo(b = await(next()))
+ } mustBe ((2, 1))
+ i = 0
+ async {
+ foo(a = await(next()))
+ } mustBe ((1, 2))
+ }
}