diff options
author | Den Shabalin <den.shabalin@gmail.com> | 2013-12-04 17:52:37 +0100 |
---|---|---|
committer | Den Shabalin <den.shabalin@gmail.com> | 2013-12-10 16:02:45 +0100 |
commit | e6eed418eefe3122b15c8e64b8697c5770a74960 (patch) | |
tree | 2161f619ccb44fda37697d297ebe52b78028adad /test | |
parent | 1188f95acf71486c4a75b9ad428a92e6e401f5cd (diff) | |
download | scala-e6eed418eefe3122b15c8e64b8697c5770a74960.tar.gz scala-e6eed418eefe3122b15c8e64b8697c5770a74960.tar.bz2 scala-e6eed418eefe3122b15c8e64b8697c5770a74960.zip |
SI-7789 make quasiquotes deconstruct UnApply trees
Diffstat (limited to 'test')
-rw-r--r-- | test/files/scalacheck/quasiquotes/TypecheckedProps.scala | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/files/scalacheck/quasiquotes/TypecheckedProps.scala b/test/files/scalacheck/quasiquotes/TypecheckedProps.scala index f443330e0b..2f501435e3 100644 --- a/test/files/scalacheck/quasiquotes/TypecheckedProps.scala +++ b/test/files/scalacheck/quasiquotes/TypecheckedProps.scala @@ -50,4 +50,29 @@ object TypecheckedProps extends QuasiquoteProperties("typechecked") { assert(enums1 ≈ enums) assert(body1 ≈ body) } + + property("extract UnApply (1)") = test { + val q"object $_ { $_; $_; $m }" = typecheck(q""" + object Test { + class Cell(val x: Int) + object Cell { def unapply(c: Cell) = Some(c.x) } + new Cell(0) match { case Cell(v) => v } + } + """) + val q"$_ match { case $f(..$args) => $_ }" = m + assert(f ≈ pq"Test.this.Cell") + assert(args ≈ List(pq"v")) + } + + property("extract UnApply (2)") = test { + val q"object $_ { $_; $_; $m }" = typecheck(q""" + object Test { + case class Cell(val x: Int) + new Cell(0) match { case Cell(v) => v } + } + """) + val q"$_ match { case ${f: TypeTree}(..$args) => $_ }" = m + assert(f.original ≈ pq"Test.this.Cell") + assert(args ≈ List(pq"v")) + } }
\ No newline at end of file |