Skip to content

Commit 0617380

Browse files
oderskyDarkDimius
authored andcommitted
Added method to help traversing children in a TreeTraverser
1 parent 5289a37 commit 0617380

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/dotty/tools/dotc/ast/Trees.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1336,6 +1336,7 @@ object Trees {
13361336
abstract class TreeTraverser extends TreeAccumulator[Unit] {
13371337
def traverse(tree: Tree): Unit
13381338
def apply(x: Unit, tree: Tree) = traverse(tree)
1339+
protected def traverseChildren(tree: Tree) = foldOver((), tree)
13391340
}
13401341

13411342
/** Fold `f` over all tree nodes, in depth-first, prefix order */
@@ -1361,9 +1362,9 @@ object Trees {
13611362
case tree: Bind => cpy.Bind(tree)(newName, tree.body)
13621363
case tree: ValDef => cpy.ValDef(tree)(name = newName.asTermName)
13631364
case tree: DefDef => cpy.DefDef(tree)(name = newName.asTermName)
1365+
case tree: untpd.PolyTypeDef => untpd.cpy.PolyTypeDef(tree)(tree.mods, newName.asTypeName, tree.tparams, tree.rhs)
13641366
case tree: TypeDef => cpy.TypeDef(tree)(name = newName.asTypeName)
13651367
case tree: SelectFromTypeTree => cpy.SelectFromTypeTree(tree)(tree.qualifier, newName)
1366-
case tree: untpd.PolyTypeDef => untpd.cpy.PolyTypeDef(tree)(tree.mods, newName.asTypeName, tree.tparams, tree.rhs)
13671368
}
13681369
}.asInstanceOf[tree.ThisTree[T]]
13691370
}

src/dotty/tools/dotc/typer/VarianceChecker.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,15 @@ class VarianceChecker()(implicit ctx: Context) {
125125
ctx.debuglog(s"Skipping variance check of ${sym.showDcl}")
126126
case tree: TypeDef =>
127127
checkVariance(sym)
128-
foldOver((), tree)
128+
traverseChildren(tree)
129129
case tree: ValDef =>
130130
checkVariance(sym)
131131
case DefDef(_, _, tparams, vparamss, _, _) =>
132132
checkVariance(sym)
133133
tparams foreach traverse
134134
vparamss foreach (_ foreach traverse)
135135
case Template(_, _, _, body) =>
136-
foldOver((), tree)
136+
traverseChildren(tree)
137137
case _ =>
138138
}
139139
}

0 commit comments

Comments
 (0)