Skip to content

Commit a9481bb

Browse files
committed
Merge pull request #211 from dotty-staging/phase-runOn
Phase.runOn is now List[ComliplationUnit] => List[ComliplationUnit]
2 parents 4180bc3 + 3c59563 commit a9481bb

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

src/dotty/tools/dotc/Run.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class Run(comp: Compiler)(implicit ctx: Context) {
4646
.filterNot(ctx.settings.Yskip.value.containsPhase(_)) // TODO: skip only subphase
4747
for (phase <- phasesToRun)
4848
if (!ctx.reporter.hasErrors) {
49-
phase.runOn(units)
49+
units = phase.runOn(units)
5050
def foreachUnit(op: Context => Unit)(implicit ctx: Context): Unit =
5151
for (unit <- units) op(ctx.fresh.setPhase(phase.next).setCompilationUnit(unit))
5252
if (ctx.settings.Xprint.value.containsPhase(phase))

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,12 @@ object Phases {
192192

193193
def run(implicit ctx: Context): Unit
194194

195-
def runOn(units: List[CompilationUnit])(implicit ctx: Context): Unit =
196-
for (unit <- units) run(ctx.fresh.setPhase(this).setCompilationUnit(unit))
195+
def runOn(units: List[CompilationUnit])(implicit ctx: Context): List[CompilationUnit] =
196+
units.map { unit =>
197+
val unitCtx = ctx.fresh.setPhase(this).setCompilationUnit(unit)
198+
run(unitCtx)
199+
unitCtx.compilationUnit
200+
}
197201

198202
def description: String = phaseName
199203

src/dotty/tools/dotc/typer/FrontEnd.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,14 @@ class FrontEnd extends Phase {
4040
record("retainedTypedTrees", unit.tpdTree.treeSize)
4141
}
4242

43-
override def runOn(units: List[CompilationUnit])(implicit ctx: Context): Unit = {
43+
override def runOn(units: List[CompilationUnit])(implicit ctx: Context): List[CompilationUnit] = {
4444
val unitContexts = units map (unit => ctx.fresh.setCompilationUnit(unit))
4545
unitContexts foreach (parse(_))
4646
record("parsedTrees", ast.Trees.ntrees)
4747
unitContexts foreach (enterSyms(_))
4848
unitContexts foreach (typeCheck(_))
4949
record("totalTrees", ast.Trees.ntrees)
50+
unitContexts.map(_.compilationUnit)
5051
}
5152

5253
override def run(implicit ctx: Context): Unit = {

0 commit comments

Comments
 (0)