diff options
author | Martin Odersky <odersky@gmail.com> | 2014-08-09 13:45:29 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-08-09 13:45:29 +0200 |
commit | 57c6c85cbc953a3489ee8d16bb5b7be862183924 (patch) | |
tree | b00bc4ac442e376b9a8da38ca9d5a4039e7630b6 /src/dotty/tools/dotc/core/Phases.scala | |
parent | 9024f25e78a9fe5d27dd2c30aa24999d8901dab6 (diff) | |
download | dotty-57c6c85cbc953a3489ee8d16bb5b7be862183924.tar.gz dotty-57c6c85cbc953a3489ee8d16bb5b7be862183924.tar.bz2 dotty-57c6c85cbc953a3489ee8d16bb5b7be862183924.zip |
Disentangle phases from treetransforms
TreeTransforms are no longer phases. This allows to generate
new transforms in prepare... methods without running into the
problem that thee new transforms are undefined as phases.
It also makes for a cleaner separation of concerns.
Diffstat (limited to 'src/dotty/tools/dotc/core/Phases.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/Phases.scala | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/Phases.scala b/src/dotty/tools/dotc/core/Phases.scala index 5c569bc7f..cecc5d1d7 100644 --- a/src/dotty/tools/dotc/core/Phases.scala +++ b/src/dotty/tools/dotc/core/Phases.scala @@ -8,7 +8,7 @@ import DenotTransformers._ import Denotations._ import config.Printers._ import scala.collection.mutable.{ListBuffer, ArrayBuffer} -import dotty.tools.dotc.transform.TreeTransforms.{TreeTransformer, TreeTransform} +import dotty.tools.dotc.transform.TreeTransforms.{TreeTransformer, MiniPhase, TreeTransform} import dotty.tools.dotc.transform.TreeTransforms import Periods._ @@ -80,7 +80,7 @@ object Phases { val phasesInBlock: Set[String] = phasess(i).map(_.name).toSet for(phase<-phasess(i)) { phase match { - case p: TreeTransform => + case p: MiniPhase => val unmetRequirements = p.runsAfterGroupsOf &~ prevPhases assert(unmetRequirements.isEmpty, @@ -90,9 +90,9 @@ object Phases { assert(false, s"Only tree transforms can be squashed, ${phase.name} can not be squashed") } } - val transforms = phasess(i).asInstanceOf[List[TreeTransform]] + val transforms = phasess(i).asInstanceOf[List[MiniPhase]].map(_.treeTransform) val block = new TreeTransformer { - override def name: String = transformations.map(_.name).mkString("TreeTransform:{", ", ", "}") + override def name: String = transformations.map(_.phase.name).mkString("TreeTransform:{", ", ", "}") override def transformations: Array[TreeTransform] = transforms.toArray } squashedPhases += block |