From 4274adf15c6cbe359fd8d98f2f412fe56244f740 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 14 Dec 2014 15:09:13 +0100 Subject: Ensure that transformStats is run at phase thisTransformPhase. --- src/dotty/tools/dotc/transform/TreeTransform.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/transform/TreeTransform.scala') diff --git a/src/dotty/tools/dotc/transform/TreeTransform.scala b/src/dotty/tools/dotc/transform/TreeTransform.scala index 984c21f54..ec7aa4d72 100644 --- a/src/dotty/tools/dotc/transform/TreeTransform.scala +++ b/src/dotty/tools/dotc/transform/TreeTransform.scala @@ -1233,7 +1233,7 @@ object TreeTransforms { final private[TreeTransforms] def goStats(trees: List[Tree], cur: Int)(implicit ctx: Context, info: TransformerInfo): List[Tree] = { if (cur < info.transformers.length) { val trans = info.transformers(cur) - val stats = trans.transformStats(trees) + val stats = trans.transformStats(trees)(ctx.withPhase(trans.treeTransformPhase), info) goStats(stats, info.nx.nxTransStats(cur + 1)) } else trees } -- cgit v1.2.3 From 25f4986d3e1a5fcc9f5c1ee5923c302e30673702 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 14 Dec 2014 15:13:33 +0100 Subject: Make sure AnnotationTransformers run at own phase --- src/dotty/tools/dotc/transform/FirstTransform.scala | 1 - src/dotty/tools/dotc/transform/TreeTransform.scala | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/transform/TreeTransform.scala') diff --git a/src/dotty/tools/dotc/transform/FirstTransform.scala b/src/dotty/tools/dotc/transform/FirstTransform.scala index 42ace148a..56d28cd4d 100644 --- a/src/dotty/tools/dotc/transform/FirstTransform.scala +++ b/src/dotty/tools/dotc/transform/FirstTransform.scala @@ -35,7 +35,6 @@ class FirstTransform extends MiniPhaseTransform with IdentityDenotTransformer wi override def phaseName = "firstTransform" - def transformInfo(tp: Type, sym: Symbol)(implicit ctx: Context): Type = tp override def checkPostCondition(tree: Tree)(implicit ctx: Context): Unit = tree match { diff --git a/src/dotty/tools/dotc/transform/TreeTransform.scala b/src/dotty/tools/dotc/transform/TreeTransform.scala index ec7aa4d72..d8eee07ff 100644 --- a/src/dotty/tools/dotc/transform/TreeTransform.scala +++ b/src/dotty/tools/dotc/transform/TreeTransform.scala @@ -177,6 +177,8 @@ object TreeTransforms { trait AnnotationTransformer extends MiniPhaseTransform with InfoTransformer { val annotationTransformer = mkTreeTransformer + override final def treeTransformPhase = this + // need to run at own phase because otherwise we get ahead of ourselves in transforming denotations override def transform(ref: SingleDenotation)(implicit ctx: Context): SingleDenotation = { val info1 = transformInfo(ref.info, ref.symbol) -- cgit v1.2.3 From a9c38ed050b46267cff902815b87362425df3ed0 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 14 Dec 2014 15:43:39 +0100 Subject: Change default treeTrannsformPhase to phase.next --- src/dotty/tools/dotc/transform/TreeTransform.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/transform/TreeTransform.scala') diff --git a/src/dotty/tools/dotc/transform/TreeTransform.scala b/src/dotty/tools/dotc/transform/TreeTransform.scala index d8eee07ff..e8626fad8 100644 --- a/src/dotty/tools/dotc/transform/TreeTransform.scala +++ b/src/dotty/tools/dotc/transform/TreeTransform.scala @@ -59,7 +59,7 @@ object TreeTransforms { def phase: MiniPhase - def treeTransformPhase: Phase = phase + def treeTransformPhase: Phase = phase.next /** id of this treeTransform in group */ var idx: Int = _ -- cgit v1.2.3