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._

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Contexts._
1111
import Symbols._
1212
import Constants._
1313
import Decorators._
14+
import Phases._
1415
import Denotations._, SymDenotations._
1516
import dotty.tools.dotc.ast.tpd
1617
import TypeErasure.erasure

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Flags._
1010
import Types._
1111
import Constants.Constant
1212
import Contexts._
13+
import Phases.atPhase
1314
import Symbols._
1415
import Decorators._
1516
import scala.collection.mutable

compiler/src/dotty/tools/dotc/transform/LambdaLift.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._
89
import core.Types._
910
import core.Flags._
1011
import core.Decorators._

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ package transform
44

55
import core._
66
import MegaPhase._
7-
import Contexts.{Context, ctx, atPhase}
7+
import Contexts.{Context, ctx}
8+
import Phases.atPhase
89
import Flags._
910
import SymUtils._
1011
import Symbols._

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package dotty.tools.dotc
22
package transform
33

44
import core._
5-
import Symbols._, Types._, Contexts._, DenotTransformers._, Flags._
5+
import Symbols._, Types._, Contexts._, DenotTransformers._, Flags._, Phases._
66
import util.Spans._
77
import SymUtils._
88
import StdNames._, NameOps._

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package transform
55
import core._
66
import ast.Trees._
77
import Contexts._, Types._, Symbols._, Flags._, TypeUtils._, DenotTransformers._, StdNames._
8-
import Decorators._
8+
import Decorators._, Phases._
99
import MegaPhase._
1010
import NameKinds.ParamAccessorName
1111
import config.Printers.typr

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import scala.collection.mutable
66
import ValueClasses.isMethodWithExtension
77
import core._
88
import Contexts._, Flags._, Symbols._, NameOps._, Trees._
9-
import TypeUtils._, SymUtils._
9+
import TypeUtils._, SymUtils._, Phases._
1010
import DenotTransformers.DenotTransformer
1111
import Symbols._
1212
import util.Spans._

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Types._
1111
import Flags._
1212
import Decorators._
1313
import DenotTransformers._
14-
import Phases.currentPhase
14+
import Phases._
1515
import core.StdNames.nme
1616
import ast.Trees._
1717
import reporting.trace

compiler/src/dotty/tools/repl/ReplDriver.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import java.io.{File => JFile, PrintStream}
55
import dotty.tools.dotc.ast.Trees._
66
import dotty.tools.dotc.ast.{tpd, untpd}
77
import dotty.tools.dotc.core.Contexts._
8-
import dotty.tools.dotc.core.Phases.{curPhases, typerPhase}
8+
import dotty.tools.dotc.core.Phases._
99
import dotty.tools.dotc.core.Denotations.Denotation
1010
import dotty.tools.dotc.core.Flags._
1111
import dotty.tools.dotc.core.Mode

0 commit comments

Comments
 (0)