aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/ast/tpd.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/ast/tpd.scala')
-rw-r--r--src/dotty/tools/dotc/ast/tpd.scala7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/ast/tpd.scala b/src/dotty/tools/dotc/ast/tpd.scala
index 9b7c9cbae..4c21fcf49 100644
--- a/src/dotty/tools/dotc/ast/tpd.scala
+++ b/src/dotty/tools/dotc/ast/tpd.scala
@@ -9,6 +9,7 @@ import SymDenotations._, Symbols._, StdNames._, Annotations._, Trees._, Symbols.
import Denotations._, Decorators._
import config.Printers._
import typer.Mode
+import collection.mutable
import typer.ErrorReporting._
import scala.annotation.tailrec
@@ -620,6 +621,12 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
}
acc(false, tree)
}
+
+ def filterSubTrees(f: Tree => Boolean): List[Tree] = {
+ val buf = new mutable.ListBuffer[Tree]
+ foreachSubTree { tree => if (f(tree)) buf += tree }
+ buf.toList
+ }
}
implicit class ListOfTreeDecorator(val xs: List[tpd.Tree]) extends AnyVal {