Skip to content

Commit 9b98abf

Browse files
committed
Cache the Phases we need in JSCodeGen like all other phases.
1 parent 3f47afb commit 9b98abf

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

src/dotty/tools/backend/sjs/JSCodeGen.scala

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,6 @@ class JSCodeGen()(implicit ctx: Context) {
5858
private val positionConversions = new JSPositions()(ctx)
5959
import positionConversions.{pos2irPos, implicitPos2irPos}
6060

61-
private val elimRepeatedPhase =
62-
ctx.phaseOfClass(classOf[dotty.tools.dotc.transform.ElimRepeated])
63-
private val elimErasedValueTypePhase =
64-
ctx.phaseOfClass(classOf[dotty.tools.dotc.transform.ElimErasedValueType])
65-
6661
// Some state --------------------------------------------------------------
6762

6863
private val currentClassSym = new ScopedVar[Symbol]
@@ -1743,7 +1738,7 @@ class JSCodeGen()(implicit ctx: Context) {
17431738
if (isStat) {
17441739
boxedResult
17451740
} else {
1746-
val tpe = ctx.atPhase(elimErasedValueTypePhase) { implicit ctx =>
1741+
val tpe = ctx.atPhase(ctx.elimErasedValueTypePhase) { implicit ctx =>
17471742
sym.info.finalResultType
17481743
}
17491744
unbox(boxedResult, tpe)
@@ -2208,12 +2203,12 @@ class JSCodeGen()(implicit ctx: Context) {
22082203
def paramNamesAndTypes(implicit ctx: Context): List[(Names.TermName, Type)] =
22092204
sym.info.paramNamess.flatten.zip(sym.info.paramTypess.flatten)
22102205

2211-
val wereRepeated = ctx.atPhase(elimRepeatedPhase) { implicit ctx =>
2206+
val wereRepeated = ctx.atPhase(ctx.elimRepeatedPhase) { implicit ctx =>
22122207
for ((name, tpe) <- paramNamesAndTypes)
22132208
yield (name -> tpe.isRepeatedParam)
22142209
}.toMap
22152210

2216-
val paramTypes = ctx.atPhase(elimErasedValueTypePhase) { implicit ctx =>
2211+
val paramTypes = ctx.atPhase(ctx.elimErasedValueTypePhase) { implicit ctx =>
22172212
paramNamesAndTypes
22182213
}.toMap
22192214

src/dotty/tools/dotc/core/Phases.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,10 @@ object Phases {
233233
private val picklerCache = new PhaseCache(classOf[Pickler])
234234

235235
private val refChecksCache = new PhaseCache(classOf[RefChecks])
236+
private val elimRepeatedCache = new PhaseCache(classOf[ElimRepeated])
236237
private val extensionMethodsCache = new PhaseCache(classOf[ExtensionMethods])
237238
private val erasureCache = new PhaseCache(classOf[Erasure])
239+
private val elimErasedValueTypeCache = new PhaseCache(classOf[ElimErasedValueType])
238240
private val patmatCache = new PhaseCache(classOf[PatternMatcher])
239241
private val lambdaLiftCache = new PhaseCache(classOf[LambdaLift])
240242
private val flattenCache = new PhaseCache(classOf[Flatten])
@@ -245,8 +247,10 @@ object Phases {
245247
def typerPhase = typerCache.phase
246248
def picklerPhase = picklerCache.phase
247249
def refchecksPhase = refChecksCache.phase
250+
def elimRepeatedPhase = elimRepeatedCache.phase
248251
def extensionMethodsPhase = extensionMethodsCache.phase
249252
def erasurePhase = erasureCache.phase
253+
def elimErasedValueTypePhase = elimErasedValueTypeCache.phase
250254
def patmatPhase = patmatCache.phase
251255
def lambdaLiftPhase = lambdaLiftCache.phase
252256
def flattenPhase = flattenCache.phase

0 commit comments

Comments
 (0)