summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/reflect
diff options
context:
space:
mode:
authorDenys Shabalin <denys.shabalin@typesafe.com>2014-02-24 15:10:39 +0100
committerDenys Shabalin <denys.shabalin@typesafe.com>2014-02-28 21:27:21 +0100
commite17c055df049c6f8b42d31629e70df5bb44e2bfb (patch)
treec43de16c7e498f39e66a445276d635f1fd51034e /src/compiler/scala/tools/reflect
parent13e7b8112fb412bb3ed29716409087aed0f2a7e4 (diff)
downloadscala-e17c055df049c6f8b42d31629e70df5bb44e2bfb.tar.gz
scala-e17c055df049c6f8b42d31629e70df5bb44e2bfb.tar.bz2
scala-e17c055df049c6f8b42d31629e70df5bb44e2bfb.zip
SI-8275 allow to directly extract block contents of the case def
Due to the fact that blocks in cases are implicit one might expect to be able to extract its contents with `..$`.
Diffstat (limited to 'src/compiler/scala/tools/reflect')
-rw-r--r--src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala b/src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala
index 61fb22bc73..4937bfc35d 100644
--- a/src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala
+++ b/src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala
@@ -206,6 +206,8 @@ trait Reifiers { self: Quasiquotes =>
reifyBuildCall(nme.SyntacticTry, block, catches, finalizer)
case Match(selector, cases) =>
reifyBuildCall(nme.SyntacticMatch, selector, cases)
+ case CaseDef(pat, guard, body) if fillListHole.isDefinedAt(body) =>
+ mirrorCall(nme.CaseDef, reify(pat), reify(guard), mirrorBuildCall(nme.SyntacticBlock, fillListHole(body)))
// parser emits trees with scala package symbol to ensure
// that some names hygienically point to various scala package
// members; we need to preserve this symbol to preserve