Skip to content

Commit d02e4f8

Browse files
committed
Make elimByName run at group end
1 parent 49f183a commit d02e4f8

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,16 @@ class ElimByName extends TransformByNameApply with InfoTransformer { thisTransfo
4242

4343
override def phaseName: String = "elimByName"
4444

45-
//override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
46-
// groupEndPhase
45+
override def treeTransformPhase(implicit ctx: Context, info: TransformerInfo) =
46+
groupEndPhase
4747

4848
override def runsAfterGroupsOf = Set(classOf[Splitter])
4949
// I got errors running this phase in an earlier group, but I did not track them down.
5050

5151
/** Map `tree` to `tree.apply()` is `ftree` was of ExprType and becomes now a function */
5252
private def applyIfFunction(tree: Tree, ftree: Tree)(implicit ctx: Context) =
53-
if (isByNameRef(ftree)) tree.select(defn.Function0_apply).appliedToNone
53+
if (isByNameRef(ftree))
54+
ctx.atPhase(next) { implicit ctx => tree.select(defn.Function0_apply).appliedToNone }
5455
else tree
5556

5657
override def transformIdent(tree: Ident)(implicit ctx: Context, info: TransformerInfo): Tree =
@@ -68,9 +69,11 @@ class ElimByName extends TransformByNameApply with InfoTransformer { thisTransfo
6869
}
6970

7071
override def transformValDef(tree: ValDef)(implicit ctx: Context, info: TransformerInfo): Tree =
71-
if (exprBecomesFunction(tree.symbol))
72-
cpy.ValDef(tree)(tpt = tree.tpt.withType(tree.symbol.info))
73-
else tree
72+
ctx.atPhase(next) { implicit ctx =>
73+
if (exprBecomesFunction(tree.symbol))
74+
cpy.ValDef(tree)(tpt = tree.tpt.withType(tree.symbol.info))
75+
else tree
76+
}
7477

7578
def transformInfo(tp: Type, sym: Symbol)(implicit ctx: Context): Type = tp match {
7679
case ExprType(rt) if exprBecomesFunction(sym) => defn.FunctionOf(Nil, rt)

0 commit comments

Comments
 (0)