Skip to content

Commit 13d4b4d

Browse files
committed
Run all phases in 6th group at group end
1 parent a993182 commit 13d4b4d

File tree

9 files changed

+27
-0
lines changed

9 files changed

+27
-0
lines changed

compiler/src/dotty/tools/dotc/transform/Constructors.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ class Constructors extends MiniPhaseTransform with IdentityDenotTransformer { th
3939
// performed before the rhs undergoes the owner change. This would lead
4040
// to more symbols being retained as parameters. Test case in run/capturing.scala.
4141

42+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
43+
groupEndPhase
44+
4245
/** The private vals that are known to be retained as class fields */
4346
private val retainedPrivateVals = mutable.Set[Symbol]()
4447

compiler/src/dotty/tools/dotc/transform/ElimErasedValueType.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ class ElimErasedValueType extends MiniPhaseTransform with InfoTransformer {
2323

2424
override def runsAfter: Set[Class[_ <: Phase]] = Set(classOf[Erasure])
2525

26+
//override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
27+
// groupEndPhase
28+
2629
def transformInfo(tp: Type, sym: Symbol)(implicit ctx: Context): Type = sym match {
2730
case sym: ClassSymbol if sym is ModuleClass =>
2831
sym.companionClass match {

compiler/src/dotty/tools/dotc/transform/FunctionalInterfaces.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ class FunctionalInterfaces extends MiniPhaseTransform {
2626

2727
def phaseName: String = "functionalInterfaces"
2828

29+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
30+
groupEndPhase
31+
2932
val functionName = "JFunction".toTermName
3033
val functionPackage = "scala.compat.java8.".toTermName
3134

compiler/src/dotty/tools/dotc/transform/GetClass.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ class GetClass extends MiniPhaseTransform {
2020

2121
override def phaseName: String = "getClass"
2222

23+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
24+
groupEndPhase
25+
2326
// getClass transformation should be applied to specialized methods
2427
override def runsAfter: Set[Class[_ <: Phase]] = Set(classOf[Erasure], classOf[FunctionalInterfaces])
2528

compiler/src/dotty/tools/dotc/transform/LazyVals.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
3838

3939
override def phaseName: String = "LazyVals"
4040

41+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
42+
groupEndPhase
43+
4144
/** List of names of phases that should have finished processing of tree
4245
* before this phase starts processing same tree */
4346
override def runsAfter = Set(classOf[Mixin])

compiler/src/dotty/tools/dotc/transform/Memoize.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ import Decorators._
3737

3838
override def phaseName = "memoize"
3939

40+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
41+
groupEndPhase
42+
4043
/* Makes sure that, after getters and constructors gen, there doesn't
4144
* exist non-deferred definitions that are not implemented. */
4245
override def checkPostCondition(tree: Tree)(implicit ctx: Context): Unit = {

compiler/src/dotty/tools/dotc/transform/Mixin.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ class Mixin extends MiniPhaseTransform with SymTransformer { thisTransform =>
9898

9999
override def runsAfter: Set[Class[_ <: Phase]] = Set(classOf[Erasure])
100100

101+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
102+
groupEndPhase
103+
101104
override def changesMembers = true // the phase adds implementions of mixin accessors
102105

103106
override def transformSym(sym: SymDenotation)(implicit ctx: Context): SymDenotation =

compiler/src/dotty/tools/dotc/transform/NonLocalReturns.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ class NonLocalReturns extends MiniPhaseTransform { thisTransformer =>
2424

2525
override def runsAfter: Set[Class[_ <: Phase]] = Set(classOf[ElimByName])
2626

27+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
28+
groupEndPhase
29+
2730
private def ensureConforms(tree: Tree, pt: Type)(implicit ctx: Context) =
2831
if (tree.tpe <:< pt) tree
2932
else Erasure.Boxing.adaptToType(tree, pt)

compiler/src/dotty/tools/dotc/transform/VCElideAllocations.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ class VCElideAllocations extends MiniPhaseTransform with IdentityDenotTransforme
2020

2121
override def phaseName: String = "vcElideAllocations"
2222

23+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
24+
groupEndPhase
25+
2326
override def runsAfter: Set[Class[_ <: Phase]] = Set(classOf[ElimErasedValueType])
2427

2528
override def transformApply(tree: Apply)(implicit ctx: Context, info: TransformerInfo): Tree =

0 commit comments

Comments
 (0)