Skip to content

Commit 94725a6

Browse files
committed
Short-circuit transformSingle
There is no need to recurse in tree if there are no transformations left.
1 parent 1c4e9c2 commit 94725a6

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/dotty/tools/dotc/transform/TreeTransform.scala

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -875,11 +875,13 @@ object TreeTransforms {
875875
}
876876

877877
final private[TreeTransforms] def transformSingle(tree: Tree, cur: Int)(implicit ctx: Context, info: TransformerInfo): Tree =
878-
tree match {
879-
// split one big match into 2 smaller ones
880-
case tree: NameTree => goNamed(tree, cur)
881-
case tree => goUnamed(tree, cur)
882-
}
878+
if (cur < info.transformers.length) {
879+
tree match {
880+
// split one big match into 2 smaller ones
881+
case tree: NameTree => goNamed(tree, cur)
882+
case tree => goUnamed(tree, cur)
883+
}
884+
} else tree
883885

884886
def localContext(owner: Symbol)(implicit ctx: Context) = ctx.fresh.setOwner(owner)
885887

0 commit comments

Comments
 (0)