diff options
author | Den Shabalin <den.shabalin@gmail.com> | 2013-09-05 20:41:21 +0200 |
---|---|---|
committer | Den Shabalin <den.shabalin@gmail.com> | 2013-09-05 20:42:09 +0200 |
commit | 73a4f172c3b4f2c7d8bf9936898f031d09899cef (patch) | |
tree | a5907d688e24d6a4be389d03002324f11d7908eb | |
parent | 800f5acd0d7117bf953829da7c6d955e61e63bdc (diff) | |
download | scala-73a4f172c3b4f2c7d8bf9936898f031d09899cef.tar.gz scala-73a4f172c3b4f2c7d8bf9936898f031d09899cef.tar.bz2 scala-73a4f172c3b4f2c7d8bf9936898f031d09899cef.zip |
extract out isHole(name)
-rw-r--r-- | src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala | 8 |
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) |