diff options
author | Denys Shabalin <denys.shabalin@typesafe.com> | 2014-02-01 19:25:16 +0100 |
---|---|---|
committer | Denys Shabalin <denys.shabalin@typesafe.com> | 2014-02-02 18:19:47 +0100 |
commit | ffc3203c3688b6fc5f47f4043bf3a0090de9d985 (patch) | |
tree | e64965cedf021c14144c4f51fb055a60ecf66342 /test/files/scalacheck/quasiquotes/DefinitionDeconstructionProps.scala | |
parent | 1a3de955b824aa4d946467c5b207133b6839b17d (diff) | |
download | scala-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/DefinitionDeconstructionProps.scala')
-rw-r--r-- | test/files/scalacheck/quasiquotes/DefinitionDeconstructionProps.scala | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/test/files/scalacheck/quasiquotes/DefinitionDeconstructionProps.scala b/test/files/scalacheck/quasiquotes/DefinitionDeconstructionProps.scala index 209fe9bbeb..88e00c734b 100644 --- a/test/files/scalacheck/quasiquotes/DefinitionDeconstructionProps.scala +++ b/test/files/scalacheck/quasiquotes/DefinitionDeconstructionProps.scala @@ -125,18 +125,28 @@ trait ModsDeconstruction { self: QuasiquoteProperties => } property("@..$annots def foo") = test { - val a = annot("a") - val b = annot("b") + val a = q"new a" + val b = q"new b" val q"@..$annots def foo" = q"@$a @$b def foo" annots ≈ List(a, b) } property("@$annot @..$annots def foo") = test { - val a = annot("a") - val b = annot("b") - val c = annot("c") + val a = q"new a" + val b = q"new b" + val c = q"new c" val q"@$first @..$rest def foo" = q"@$a @$b @$c def foo" - first ≈ a && rest ≈ List(b, c) + assert(first ≈ a) + assert(rest ≈ List(b, c)) + } + + property("@..$anots @$annot def foo") = test { + val a = q"new a" + val b = q"new b" + val c = q"new c" + val q"@..$init @$last def foo" = q"@$a @$b @$c def foo" + assert(init ≈ List(a, b)) + assert(last ≈ c) } } |