diff options
author | Den Shabalin <den.shabalin@gmail.com> | 2013-12-02 14:59:53 +0100 |
---|---|---|
committer | Den Shabalin <den.shabalin@gmail.com> | 2013-12-10 16:02:02 +0100 |
commit | 207b945353bd49f4357ebb9921280591b309db3f (patch) | |
tree | 6b23a4daf67c85af61a3114b55e9ed3c72dee44d /src | |
parent | 8bde124040f3e053d6312702f2cd722ac92fc132 (diff) | |
download | scala-207b945353bd49f4357ebb9921280591b309db3f.tar.gz scala-207b945353bd49f4357ebb9921280591b309db3f.tar.bz2 scala-207b945353bd49f4357ebb9921280591b309db3f.zip |
SI-8016 Ensure that q”..$xs” is equivalent to q”{..$xs}”
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala | 7 | ||||
-rw-r--r-- | src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala | 4 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala index 126c14ac81..6e6b617e5c 100644 --- a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala +++ b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala @@ -161,7 +161,12 @@ trait Parsers { self: Quasiquotes => } object TermParser extends Parser { - def entryPoint = { parser => gen.mkTreeOrBlock(parser.templateOrTopStatSeq()) } + def entryPoint = { parser => + parser.templateOrTopStatSeq() match { + case head :: Nil => Block(Nil, head) + case lst => gen.mkTreeOrBlock(lst) + } + } } object TypeParser extends Parser { diff --git a/src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala b/src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala index 6922ec1bb4..e72651b6df 100644 --- a/src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala +++ b/src/compiler/scala/tools/reflect/quasiquotes/Reifiers.scala @@ -167,6 +167,10 @@ trait Reifiers { self: Quasiquotes => reifyBuildCall(nme.SyntacticTypeApplied, fun, targs) case SyntacticFunction(args, body) => reifyBuildCall(nme.SyntacticFunction, args, body) + case Block(Nil, Placeholder(tree, _, DotDot)) => + mirrorBuildCall(nme.SyntacticBlock, tree) + case Block(Nil, other) => + reifyTree(other) case Block(stats, last) => reifyBuildCall(nme.SyntacticBlock, stats :+ last) // parser emits trees with scala package symbol to ensure |