aboutsummaryrefslogtreecommitdiff
path: root/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-03-31 11:50:07 +0200
committerFelix Mulder <felix.mulder@gmail.com>2017-03-31 16:45:12 +0200
commited10ef0208f794060b5351cc601a915177e0a1c5 (patch)
treeff68342c68381cbb693995f3043d03a7d7546229 /compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
parent57a11776480ab5259281dd29777c45af9ea3ca78 (diff)
downloaddotty-ed10ef0208f794060b5351cc601a915177e0a1c5.tar.gz
dotty-ed10ef0208f794060b5351cc601a915177e0a1c5.tar.bz2
dotty-ed10ef0208f794060b5351cc601a915177e0a1c5.zip
Fix deadlock in `runAll`
Diffstat (limited to 'compiler/test/dotty/tools/dotc/reporting/TestReporter.scala')
-rw-r--r--compiler/test/dotty/tools/dotc/reporting/TestReporter.scala51
1 files changed, 19 insertions, 32 deletions
diff --git a/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala b/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
index 2d7e6c70a..5641240a7 100644
--- a/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
+++ b/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
@@ -2,7 +2,7 @@ package dotty.tools
package dotc
package reporting
-import java.io.{ PrintWriter, File => JFile, FileOutputStream }
+import java.io.{ PrintStream, PrintWriter, File => JFile, FileOutputStream }
import java.text.SimpleDateFormat
import java.util.Date
@@ -93,38 +93,25 @@ object TestReporter {
logWriter.flush()
}
- def parallelReporter(lock: AnyRef, logLevel: Int): TestReporter = new TestReporter(
- new PrintWriter(Console.err, true),
- str => lock.synchronized {
- logWriter.println(str)
- logWriter.flush()
- },
- logLevel
- )
-
- def reporter(logLevel: Int): TestReporter = new TestReporter(
- new PrintWriter(Console.err, true),
- writeToLog,
- logLevel
- )
-
- def simplifiedReporter(writer: PrintWriter): TestReporter = new TestReporter(
- writer,
- writeToLog,
- WARNING
- ) {
- /** Prints the message with the given position indication in a simplified manner */
- override def printMessageAndPos(m: MessageContainer, extra: String)(implicit ctx: Context): Unit = {
- val msg = s"${m.pos.line + 1}: " + m.contained.kind + extra
- val extraInfo = inlineInfo(m.pos)
-
- writer.println(msg)
- _messageBuf.append(msg)
-
- if (extraInfo.nonEmpty) {
- writer.println(extraInfo)
- _messageBuf.append(extraInfo)
+ def reporter(ps: PrintStream, logLevel: Int): TestReporter =
+ new TestReporter(new PrintWriter(ps, true), writeToLog, logLevel)
+
+ def simplifiedReporter(writer: PrintWriter): TestReporter = {
+ val rep = new TestReporter(writer, writeToLog, WARNING) {
+ /** Prints the message with the given position indication in a simplified manner */
+ override def printMessageAndPos(m: MessageContainer, extra: String)(implicit ctx: Context): Unit = {
+ val msg = s"${m.pos.line + 1}: " + m.contained.kind + extra
+ val extraInfo = inlineInfo(m.pos)
+
+ writer.println(msg)
+ _messageBuf.append(msg)
+
+ if (extraInfo.nonEmpty) {
+ writer.println(extraInfo)
+ _messageBuf.append(extraInfo)
+ }
}
}
+ rep
}
}