diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-07-16 10:52:53 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-07-16 11:05:18 +0200 |
commit | 53caec0e8c3624ba7596004b33b92e979a757b50 (patch) | |
tree | ebc1ed98abd399730cfbbffa85d14ce1696ffdc3 /src/dotty/tools/dotc | |
parent | 94725a6015160e38db41facc2dc232647cdf1c5d (diff) | |
download | dotty-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')
-rw-r--r-- | src/dotty/tools/dotc/transform/TreeTransform.scala | 12 |
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 |