summaryrefslogtreecommitdiff
path: root/test/files/scalacheck/quasiquotes/TypecheckedProps.scala
diff options
context:
space:
mode:
authorDen Shabalin <den.shabalin@gmail.com>2013-10-31 12:21:28 +0100
committerDen Shabalin <den.shabalin@gmail.com>2013-11-12 14:04:42 +0100
commitc62a0e78c33dda1db6e73fa5cd3c6ddbd2b238f4 (patch)
treee5b1d545931db70c83844474a802804b164f75e5 /test/files/scalacheck/quasiquotes/TypecheckedProps.scala
parenta4a3ab0d722412b9ecf267b178bb866087867cf9 (diff)
downloadscala-c62a0e78c33dda1db6e73fa5cd3c6ddbd2b238f4.tar.gz
scala-c62a0e78c33dda1db6e73fa5cd3c6ddbd2b238f4.tar.bz2
scala-c62a0e78c33dda1db6e73fa5cd3c6ddbd2b238f4.zip
add support for for loops and for enumerators to quasiquotes
1. q"for (..$enums) $body", q"for (..$enums) yield $body" 2. fq"..." quote to construct/deconstruct enumerators
Diffstat (limited to 'test/files/scalacheck/quasiquotes/TypecheckedProps.scala')
-rw-r--r--test/files/scalacheck/quasiquotes/TypecheckedProps.scala12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/files/scalacheck/quasiquotes/TypecheckedProps.scala b/test/files/scalacheck/quasiquotes/TypecheckedProps.scala
index 8e93422e77..a95016b634 100644
--- a/test/files/scalacheck/quasiquotes/TypecheckedProps.scala
+++ b/test/files/scalacheck/quasiquotes/TypecheckedProps.scala
@@ -27,4 +27,16 @@ object TypecheckedProps extends QuasiquoteProperties("typechecked") {
assert(originals(argtpes) ≈ intint)
assert(original(restpe).get ≈ int)
}
+
+ property("for/for-yield") = test {
+ val enums = fq"x <- xs" :: fq"x1 = x + 1" :: fq"if x1 % 2 == 0" :: Nil
+ val body = q"x1"
+ val xs = q"val xs = List(1, 2, 3)"
+ val q"$_; for(..$enums0) yield $body0" = typecheck(q"$xs; for(..$enums) yield $body")
+ assert(enums0 ≈ enums)
+ assert(body0 ≈ body)
+ val q"$_; for(..$enums1) $body1" = typecheck(q"$xs; for(..$enums) $body")
+ assert(enums1 ≈ enums)
+ assert(body1 ≈ body)
+ }
} \ No newline at end of file