@@ -15,7 +15,7 @@ import diagnostic.{ Message, MessageContainer, NoExplanation }
15
15
import diagnostic .messages ._
16
16
import interfaces .Diagnostic .{ ERROR , WARNING , INFO }
17
17
18
- class TestReporter protected (outWriter : PrintWriter , filePrintln : String => Unit , logLevel : Int )
18
+ class TestReporter protected (outWriter : () => PrintWriter , filePrintln : String => Unit , logLevel : Int )
19
19
extends Reporter with UniqueMessagePositions with HideNonSensicalMessages with MessageRendering {
20
20
import MessageContainer ._
21
21
@@ -53,8 +53,8 @@ extends Reporter with UniqueMessagePositions with HideNonSensicalMessages with M
53
53
val extraInfo = inlineInfo(m.pos)
54
54
55
55
if (m.level >= logLevel) {
56
- outWriter.println(msg)
57
- if (extraInfo.nonEmpty) outWriter.println(extraInfo)
56
+ outWriter() .println(msg)
57
+ if (extraInfo.nonEmpty) outWriter() .println(extraInfo)
58
58
}
59
59
60
60
_messageBuf.append(msg)
@@ -94,22 +94,19 @@ object TestReporter {
94
94
}
95
95
96
96
def parallelReporter (lock : AnyRef , logLevel : Int ): TestReporter = new TestReporter (
97
- new PrintWriter (Console .err, true ),
98
- str => lock.synchronized {
99
- logWriter.println(str)
100
- logWriter.flush()
101
- },
97
+ () => lock.synchronized { new PrintWriter (Console .err, true ) },
98
+ str => lock.synchronized { writeToLog(str) },
102
99
logLevel
103
100
)
104
101
105
102
def reporter (logLevel : Int ): TestReporter = new TestReporter (
106
- new PrintWriter (Console .err, true ),
103
+ () => new PrintWriter (Console .err, true ),
107
104
writeToLog,
108
105
logLevel
109
106
)
110
107
111
108
def simplifiedReporter (writer : PrintWriter ): TestReporter = new TestReporter (
112
- writer,
109
+ () => writer,
113
110
writeToLog,
114
111
WARNING
115
112
) {
0 commit comments