summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDen Shabalin <den.shabalin@gmail.com>2013-09-05 20:41:21 +0200
committerDen Shabalin <den.shabalin@gmail.com>2013-09-05 20:42:09 +0200
commit73a4f172c3b4f2c7d8bf9936898f031d09899cef (patch)
treea5907d688e24d6a4be389d03002324f11d7908eb
parent800f5acd0d7117bf953829da7c6d955e61e63bdc (diff)
downloadscala-73a4f172c3b4f2c7d8bf9936898f031d09899cef.tar.gz
scala-73a4f172c3b4f2c7d8bf9936898f031d09899cef.tar.bz2
scala-73a4f172c3b4f2c7d8bf9936898f031d09899cef.zip
extract out isHole(name)
-rw-r--r--src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
index 868eccebcd..a8ec46261f 100644
--- a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
+++ b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
@@ -50,6 +50,10 @@ trait Parsers { self: Quasiquotes =>
def entryPoint: QuasiquoteParser => Tree
class QuasiquoteParser(source0: SourceFile) extends SourceFileParser(source0) {
+ def isHole: Boolean = isIdent && isHole(in.name)
+
+ def isHole(name: Name): Boolean = holeMap.contains(name)
+
override val treeBuilder = new ParserTreeBuilder {
// q"(..$xs)"
override def makeTupleTerm(trees: List[Tree], flattenUnary: Boolean): Tree =
@@ -61,7 +65,7 @@ trait Parsers { self: Quasiquotes =>
// q"{ $x }"
override def makeBlock(stats: List[Tree]): Tree = stats match {
- case (head @ Ident(name)) :: Nil if holeMap.contains(name) => Block(Nil, head)
+ case (head @ Ident(name)) :: Nil if isHole(name) => Block(Nil, head)
case _ => super.makeBlock(stats)
}
@@ -88,8 +92,6 @@ trait Parsers { self: Quasiquotes =>
case other => other
}
- def isHole: Boolean = isIdent && holeMap.contains(in.name)
-
override def isAnnotation: Boolean = super.isAnnotation || (isHole && lookingAhead { isAnnotation })
override def isCaseDefStart: Boolean = super.isCaseDefStart || (in.token == EOF)