summaryrefslogtreecommitdiff
path: root/test/files/scalacheck/quasiquotes/PatternDeconstructionProps.scala
diff options
context:
space:
mode:
authorDenys Shabalin <denys.shabalin@typesafe.com>2014-02-01 19:25:16 +0100
committerDenys Shabalin <denys.shabalin@typesafe.com>2014-02-02 18:19:47 +0100
commitffc3203c3688b6fc5f47f4043bf3a0090de9d985 (patch)
treee64965cedf021c14144c4f51fb055a60ecf66342 /test/files/scalacheck/quasiquotes/PatternDeconstructionProps.scala
parent1a3de955b824aa4d946467c5b207133b6839b17d (diff)
downloadscala-ffc3203c3688b6fc5f47f4043bf3a0090de9d985.tar.gz
scala-ffc3203c3688b6fc5f47f4043bf3a0090de9d985.tar.bz2
scala-ffc3203c3688b6fc5f47f4043bf3a0090de9d985.zip
SI-8173 add support for patterns like init :+ last to quasiquotes
Adds support for patterns like: val q"{ ..$init; $last }" = q"{ a; b; c }" // init == List(q"a", q"b") // last == q"c" Which under the hood get compiled as `:+` patterns: SyntacticBlock(init :+ last)
Diffstat (limited to 'test/files/scalacheck/quasiquotes/PatternDeconstructionProps.scala')
-rw-r--r--test/files/scalacheck/quasiquotes/PatternDeconstructionProps.scala12
1 files changed, 11 insertions, 1 deletions
diff --git a/test/files/scalacheck/quasiquotes/PatternDeconstructionProps.scala b/test/files/scalacheck/quasiquotes/PatternDeconstructionProps.scala
index cccf8095db..c8e66c7ef5 100644
--- a/test/files/scalacheck/quasiquotes/PatternDeconstructionProps.scala
+++ b/test/files/scalacheck/quasiquotes/PatternDeconstructionProps.scala
@@ -22,8 +22,18 @@ object PatternDeconstructionProps extends QuasiquoteProperties("pattern deconstr
pat0 ≈ pat && subpat0 ≈ subpat
}
+ property("extract apply many") = forAll { (pat: Tree, subpats: List[Tree]) =>
+ val pq"$pat0(..$subpats0)" = pq"$pat(..$subpats)"
+ pat0 ≈ pat && subpats0 ≈ subpats
+ }
+
+ property("extract apply last") = forAll { (pat: Tree, subpats: List[Tree], subpatlast: Tree) =>
+ val pq"$pat0(..$subpats0, $subpatlast0)" = pq"$pat(..$subpats, $subpatlast)"
+ pat0 ≈ pat && subpats0 ≈ subpats && subpatlast0 ≈ subpatlast
+ }
+
property("extract casedef") = forAll { (pat: Tree, cond: Tree, body: Tree) =>
val cq"$pat0 if $cond0 => $body0" = cq"$pat if $cond => $body"
pat0 ≈ pat && cond0 ≈ cond && body0 ≈ body
}
-} \ No newline at end of file
+}