@@ -2,16 +2,15 @@ package dotty.partest
2
2
3
3
import dotty .tools .dotc .reporting .ConsoleReporter
4
4
import scala .tools .partest .{ TestState , nest }
5
- import java .io .{ File , PrintWriter , FileWriter }
5
+ import java .io ._
6
6
7
7
8
8
/* NOTE: Adapted from partest.DirectCompiler and DottyTest */
9
9
class DPDirectCompiler (runner : DPTestRunner ) extends nest.DirectCompiler (runner) {
10
10
11
11
override def compile (opts0 : List [String ], sources : List [File ]): TestState = {
12
- val clogFWriter = new FileWriter (runner.cLogFile.jfile, true )
13
- val clogWriter = new PrintWriter (clogFWriter, true )
14
- clogWriter.println(" \n compiling " + sources.mkString(" " ) + " \n options: " + opts0.mkString(" " ))
12
+ val clogStream = new PrintStream (new FileOutputStream (runner.cLogFile.jfile), true )
13
+ clogStream.println(" \n compiling " + sources.mkString(" " ) + " \n options: " + opts0.mkString(" " ))
15
14
16
15
implicit val ctx : dotty.tools.dotc.core.Contexts .Context = {
17
16
val base = new dotty.tools.dotc.core.Contexts .ContextBase
@@ -22,12 +21,16 @@ class DPDirectCompiler(runner: DPTestRunner) extends nest.DirectCompiler(runner)
22
21
ctx
23
22
}
24
23
24
+ val savedOut = System .out
25
+ val savedErr = System .err
25
26
try {
26
27
val processor =
27
28
if (opts0.exists(_.startsWith(" #" ))) dotty.tools.dotc.Bench else dotty.tools.dotc.Main
28
- val clogger = new ConsoleReporter (writer = clogWriter)(ctx)
29
- val logCtx = ctx.fresh.setTyperState(ctx.typerState.withReporter(clogger))
30
- val reporter = processor.process((sources.map(_.toString) ::: opts0).toArray, logCtx)
29
+
30
+ System .setOut(clogStream)
31
+ System .setErr(clogStream)
32
+
33
+ val reporter = processor.process((sources.map(_.toString) ::: opts0).toArray)
31
34
if (! reporter.hasErrors) runner.genPass()
32
35
else {
33
36
reporter.printSummary(ctx)
@@ -36,8 +39,9 @@ class DPDirectCompiler(runner: DPTestRunner) extends nest.DirectCompiler(runner)
36
39
} catch {
37
40
case t : Throwable => runner.genCrash(t)
38
41
} finally {
39
- clogFWriter.close
40
- clogWriter.close
42
+ System .setOut(savedOut)
43
+ System .setErr(savedErr)
44
+ clogStream.close
41
45
}
42
46
}
43
47
}
0 commit comments