Skip to content

Commit bce1767

Browse files
committed
Move atPhase/atPeriod and related to Phases and Periods
1 parent 8a477c7 commit bce1767

19 files changed

+36
-32
lines changed

compiler/src/dotty/tools/backend/jvm/BCodeBodyBuilder.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import dotty.tools.dotc.core.Symbols._
1919
import dotty.tools.dotc.transform.Erasure
2020
import dotty.tools.dotc.transform.SymUtils._
2121
import dotty.tools.dotc.util.Spans._
22-
import dotty.tools.dotc.core.Contexts.{inContext, atPhase}
2322
import dotty.tools.dotc.core.Phases._
2423

2524
/*

compiler/src/dotty/tools/backend/jvm/BCodeHelpers.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import dotty.tools.dotc.ast.tpd
1313
import dotty.tools.dotc.ast.Trees
1414
import dotty.tools.dotc.core.Annotations._
1515
import dotty.tools.dotc.core.Constants._
16-
import dotty.tools.dotc.core.Contexts.{Context, atPhase}
16+
import dotty.tools.dotc.core.Contexts.Context
1717
import dotty.tools.dotc.core.Phases._
1818
import dotty.tools.dotc.core.Decorators._
1919
import dotty.tools.dotc.core.Flags._

compiler/src/dotty/tools/backend/jvm/BTypesFromSymbols.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import scala.collection.mutable
88
import scala.collection.generic.Clearable
99

1010
import dotty.tools.dotc.core.Flags._
11-
import dotty.tools.dotc.core.Contexts.{inContext, atPhase}
1211
import dotty.tools.dotc.core.Phases._
1312
import dotty.tools.dotc.core.Symbols._
1413
import dotty.tools.dotc.core.Phases.Phase

compiler/src/dotty/tools/dotc/ast/tpd.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import Decorators.{given _}, DenotTransformers._
1313
import collection.{immutable, mutable}
1414
import util.{Property, SourceFile, NoSource}
1515
import NameKinds.{TempResultName, OuterSelectName}
16-
import Phases.{currentPhase, currentlyAfterErasure}
16+
import Phases._
1717
import typer.ConstFold
1818

1919
import scala.annotation.tailrec

compiler/src/dotty/tools/dotc/core/Contexts.scala

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,24 +57,6 @@ object Contexts {
5757
inline def inContext[T](c: Context)(inline op: Context ?=> T): T =
5858
op(using c)
5959

60-
/** Execute `op` at given period */
61-
inline def atPeriod[T](pd: Period)(inline op: Context ?=> T)(using Context): T =
62-
op(using ctx.fresh.setPeriod(pd))
63-
64-
/** Execute `op` at given phase id */
65-
inline def atPhase[T](pid: PhaseId)(inline op: Context ?=> T)(using Context): T =
66-
op(using ctx.withPhase(pid))
67-
68-
/** Execute `op` at given phase */
69-
inline def atPhase[T](phase: Phase)(inline op: Context ?=> T)(using Context): T =
70-
atPhase(phase.id)(op)
71-
72-
inline def atNextPhase[T](inline op: Context ?=> T)(using Context): T =
73-
atPhase(currentPhase.next)(op)
74-
75-
inline def atPhaseNotLaterThan[T](limit: Phase)(inline op: Context ?=> T)(using Context): T =
76-
op(using if !limit.exists || currentPhase <= limit then ctx else ctx.withPhase(limit))
77-
7860
/** A context is passed basically everywhere in dotc.
7961
* This is convenient but carries the risk of captured contexts in
8062
* objects that turn into space leaks. To combat this risk, here are some

compiler/src/dotty/tools/dotc/core/Denotations.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import Flags._
1515
import DenotTransformers._
1616
import Decorators._
1717
import Signature.MatchDegree._
18-
import Phases.{currentPhase, currentlyAfterErasure}
18+
import Phases._
1919
import printing.Texts._
2020
import printing.Printer
2121
import io.AbstractFile

compiler/src/dotty/tools/dotc/core/Periods.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ object Periods {
1111

1212
inline def currentPhaseId(using ctx: Context): PhaseId = ctx.period.phaseId
1313

14+
/** Execute `op` at given period */
15+
inline def atPeriod[T](pd: Period)(inline op: Context ?=> T)(using Context): T =
16+
op(using ctx.fresh.setPeriod(pd))
17+
1418
/** The period containing the current period where denotations do not change.
1519
* We compute this by taking as first phase the first phase less or equal to
1620
* the current phase that has the same "nextTransformerId". As last phase

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

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,27 @@ object Phases {
2626

2727
inline def currentPhase(using ctx: Context): Phase = ctx.base.phases(ctx.period.firstPhaseId)
2828

29-
inline def phaseOf(id: PhaseId)(using Context): Phase =
30-
ctx.base.phases(id)
31-
3229
def currentlyAfterTyper(using Context): Boolean = ctx.base.isAfterTyper(currentPhase)
3330

3431
def currentlyAfterErasure(using Context): Boolean = currentPhase.erasedTypes
3532

33+
/** Execute `op` at given phase id */
34+
inline def atPhase[T](pid: PhaseId)(inline op: Context ?=> T)(using Context): T =
35+
op(using ctx.withPhase(pid))
36+
37+
/** Execute `op` at given phase */
38+
inline def atPhase[T](phase: Phase)(inline op: Context ?=> T)(using Context): T =
39+
atPhase(phase.id)(op)
40+
41+
inline def atNextPhase[T](inline op: Context ?=> T)(using Context): T =
42+
atPhase(currentPhase.next)(op)
43+
44+
inline def atPhaseNotLaterThan[T](limit: Phase)(inline op: Context ?=> T)(using Context): T =
45+
op(using if !limit.exists || currentPhase <= limit then ctx else ctx.withPhase(limit))
46+
47+
inline def phaseOf(id: PhaseId)(using Context): Phase =
48+
ctx.base.phases(id)
49+
3650
trait PhasesBase {
3751
this: ContextBase =>
3852

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import MegaPhase._
55
import core.DenotTransformers._
66
import core.Symbols._
77
import core.Contexts._
8+
import core.Phases.atPhase
89
import core.Flags._
910
import core.Decorators._
1011
import core.StdNames.nme

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package transform
33

44
import core._
55
import DenotTransformers.InfoTransformer
6+
import Phases.atPhase
67
import Symbols._
78
import Contexts._
89
import Types._

0 commit comments

Comments
 (0)