Skip to content

Commit 6dfbcdd

Browse files
committed
Added method to help traversing children in a TreeTraverser
1 parent a158137 commit 6dfbcdd

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
@@ -1332,6 +1332,7 @@ object Trees {
13321332
abstract class TreeTraverser extends TreeAccumulator[Unit] {
13331333
def traverse(tree: Tree): Unit
13341334
def apply(x: Unit, tree: Tree) = traverse(tree)
1335+
protected def traverseChildren(tree: Tree) = foldOver((), tree)
13351336
}
13361337

13371338
/** Fold `f` over all tree nodes, in depth-first, prefix order */
@@ -1357,9 +1358,9 @@ object Trees {
13571358
case tree: Bind => cpy.Bind(tree)(newName, tree.body)
13581359
case tree: ValDef => cpy.ValDef(tree)(name = newName.asTermName)
13591360
case tree: DefDef => cpy.DefDef(tree)(name = newName.asTermName)
1361+
case tree: untpd.PolyTypeDef => untpd.cpy.PolyTypeDef(tree)(tree.mods, newName.asTypeName, tree.tparams, tree.rhs)
13601362
case tree: TypeDef => cpy.TypeDef(tree)(name = newName.asTypeName)
13611363
case tree: SelectFromTypeTree => cpy.SelectFromTypeTree(tree)(tree.qualifier, newName)
1362-
case tree: untpd.PolyTypeDef => untpd.cpy.PolyTypeDef(tree)(tree.mods, newName.asTypeName, tree.tparams, tree.rhs)
13631364
}
13641365
}.asInstanceOf[tree.ThisTree[T]]
13651366
}

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)