aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/TreeTransform.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-07-16 10:52:53 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-07-16 11:05:18 +0200
commit53caec0e8c3624ba7596004b33b92e979a757b50 (patch)
treeebc1ed98abd399730cfbbffa85d14ce1696ffdc3 /src/dotty/tools/dotc/transform/TreeTransform.scala
parent94725a6015160e38db41facc2dc232647cdf1c5d (diff)
downloaddotty-53caec0e8c3624ba7596004b33b92e979a757b50.tar.gz
dotty-53caec0e8c3624ba7596004b33b92e979a757b50.tar.bz2
dotty-53caec0e8c3624ba7596004b33b92e979a757b50.zip
Short-circuit TreeTransform.transform
No need to perform zero transformations.
Diffstat (limited to 'src/dotty/tools/dotc/transform/TreeTransform.scala')
-rw-r--r--src/dotty/tools/dotc/transform/TreeTransform.scala12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/transform/TreeTransform.scala b/src/dotty/tools/dotc/transform/TreeTransform.scala
index 1d6e9c9f1..0b25f60a6 100644
--- a/src/dotty/tools/dotc/transform/TreeTransform.scala
+++ b/src/dotty/tools/dotc/transform/TreeTransform.scala
@@ -1129,11 +1129,13 @@ object TreeTransforms {
}
def transform(tree: Tree, info: TransformerInfo, cur: Int)(implicit ctx: Context): Tree = ctx.traceIndented(s"transforming ${tree.show} at ${ctx.phase}", transforms, show = true) {
- tree match {
- //split one big match into 2 smaller ones
- case tree: NameTree => transformNamed(tree, info, cur)
- case tree => transformUnnamed(tree, info, cur)
- }
+ if (cur < info.transformers.length) {
+ tree match {
+ //split one big match into 2 smaller ones
+ case tree: NameTree => transformNamed(tree, info, cur)
+ case tree => transformUnnamed(tree, info, cur)
+ }
+ } else tree
}
@tailrec