Skip to content

Commit

Permalink
Rename EmptyTypTree into SyntacticEmptyTypeTree
Browse files Browse the repository at this point in the history
1. Change the name as Eugene believes previous name was misleading

2. Remove EmptyTree case as it's not needed any longer
  • Loading branch information
densh committed Feb 7, 2014
1 parent 3306967 commit d60b832
Showing 1 changed file with 7 additions and 11 deletions.
18 changes: 7 additions & 11 deletions src/reflect/scala/reflect/internal/BuildUtils.scala
Expand Up @@ -537,13 +537,9 @@ trait BuildUtils { self: SymbolTable =>
def unapply(tree: Tree): Option[Tree] = gen.Filter.unapply(tree)
}

// abstract over possible alternative representations of no type in valdef
protected object EmptyTypTree {
def unapply(tree: Tree): Boolean = tree match {
case EmptyTree => true
case tt: TypeTree if (tt.original == null || tt.original.isEmpty) => true
case _ => false
}
// a type tree which wasn't specified by the user but might have been inferred by compiler
object SyntacticEmptyTypeTree {
def unapply(tt: TypeTree): Boolean = tt.original == null || tt.original.isEmpty
}

// match a sequence of desugared `val $pat = $value`
Expand All @@ -561,8 +557,8 @@ trait BuildUtils { self: SymbolTable =>
case ValDef(_, name1, _, Match(MaybeUnchecked(value), CaseDef(pat, EmptyTree, Ident(name2)) :: Nil)) :: UnPatSeq(rest)
if name1 == name2 =>
Some((pat, value) :: rest)
// case q"${_} val $name: ${EmptyTypTree()} = $value" :: UnPatSeq(rest) =>
case ValDef(_, name, EmptyTypTree(), value) :: UnPatSeq(rest) =>
// case q"${_} val $name: ${SyntacticEmptyTypeTree()} = $value" :: UnPatSeq(rest) =>
case ValDef(_, name, SyntacticEmptyTypeTree(), value) :: UnPatSeq(rest) =>
Some((Bind(name, self.Ident(nme.WILDCARD)), value) :: rest)
// case q"${_} val $name: $tpt = $value" :: UnPatSeq(rest) =>
case ValDef(_, name, tpt, value) :: UnPatSeq(rest) =>
Expand Down Expand Up @@ -604,8 +600,8 @@ trait BuildUtils { self: SymbolTable =>
def unapply(tree: Tree): Option[(Tree, Tree)] = tree match {
case Function(ValDef(Modifiers(PARAM, _, _), name, tpt, EmptyTree) :: Nil, body) =>
tpt match {
case EmptyTypTree() => Some((Bind(name, self.Ident(nme.WILDCARD)), body))
case _ => Some((Bind(name, Typed(self.Ident(nme.WILDCARD), tpt)), body))
case SyntacticEmptyTypeTree() => Some((Bind(name, self.Ident(nme.WILDCARD)), body))
case _ => Some((Bind(name, Typed(self.Ident(nme.WILDCARD), tpt)), body))
}
case UnVisitor(_, CaseDef(pat, EmptyTree, body) :: Nil) =>
Some((pat, body))
Expand Down

0 comments on commit d60b832

Please sign in to comment.