@@ -7,7 +7,7 @@ import Periods._
7
7
import Symbols ._
8
8
import Scopes ._
9
9
import typer .{FrontEnd , Typer , Mode , ImportInfo , RefChecks }
10
- import reporting .{ConsoleReporter , Reporter }
10
+ import reporting .{Reporter , ConsoleReporter }
11
11
import Phases .Phase
12
12
import dotty .tools .dotc .transform ._
13
13
import dotty .tools .dotc .transform .TreeTransforms .{TreeTransform , TreeTransformer }
@@ -94,7 +94,7 @@ class Compiler {
94
94
* for type checking.
95
95
* imports For each element of RootImports, an import context
96
96
*/
97
- def rootContext (implicit ctx : Context , r : Option [ Reporter ] = None ): Context = {
97
+ def rootContext (implicit ctx : Context ): Context = {
98
98
ctx.definitions.init(ctx)
99
99
ctx.setPhasePlan(phases)
100
100
val rootScope = new MutableScope
@@ -106,20 +106,22 @@ class Compiler {
106
106
.setOwner(defn.RootClass )
107
107
.setTyper(new Typer )
108
108
.setMode(Mode .ImplicitsEnabled )
109
- .setTyperState(new MutableTyperState (ctx.typerState, r.getOrElse( new ConsoleReporter ()( ctx) ), isCommittable = true ))
109
+ .setTyperState(new MutableTyperState (ctx.typerState, rootReporter( ctx), isCommittable = true ))
110
110
ctx.definitions.init(start) // set context of definitions to start
111
111
def addImport (ctx : Context , symf : () => Symbol ) =
112
112
ctx.fresh.setImportInfo(ImportInfo .rootImport(symf)(ctx))
113
113
(start.setRunInfo(new RunInfo (start)) /: defn.RootImportFns )(addImport)
114
114
}
115
115
116
+ protected def rootReporter (implicit ctx : Context ): Reporter = new ConsoleReporter ()(ctx)
117
+
116
118
def reset ()(implicit ctx : Context ): Unit = {
117
119
ctx.base.reset()
118
120
ctx.runInfo.clear()
119
121
}
120
122
121
- def newRun (implicit ctx : Context , r : Option [ Reporter ] = None ): Run = {
123
+ def newRun (implicit ctx : Context ): Run = {
122
124
reset()
123
- new Run (this )(rootContext(ctx, r) )
125
+ new Run (this )(rootContext)
124
126
}
125
127
}
0 commit comments