Skip to content

Commit 5f517c8

Browse files
committed
Add Types#TypeTraverser for convenience
This works similarly to `Trees#TreeTraverser`.
1 parent 2e14093 commit 5f517c8

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/dotty/tools/dotc/core/Types.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3402,6 +3402,12 @@ object Types {
34023402
}
34033403
}
34043404

3405+
abstract class TypeTraverser(implicit ctx: Context) extends TypeAccumulator[Unit] {
3406+
def traverse(tp: Type): Unit
3407+
def apply(x: Unit, tp: Type): Unit = traverse(tp)
3408+
protected def traverseChildren(tp: Type) = foldOver((), tp)
3409+
}
3410+
34053411
class ExistsAccumulator(p: Type => Boolean)(implicit ctx: Context) extends TypeAccumulator[Boolean] {
34063412
override def stopAtStatic = false
34073413
def apply(x: Boolean, tp: Type) = x || p(tp) || foldOver(x, tp)

0 commit comments

Comments
 (0)