1- package dotty .tools
1+ package dotty
2+ package tools
23package dotc
34package reporting
45
5- import scala . language . unsafeNulls
6- import java .io .{ BufferedReader , FileInputStream , FileOutputStream , FileReader , PrintStream , PrintWriter , StringReader , StringWriter , File as JFile }
6+ import java . io .{ File as JFile , * }
7+ import java .nio . file . Files . readAllLines
78import java .text .SimpleDateFormat
89import java .util .Date
9- import core .Decorators .*
1010
11- import scala .collection .mutable
12- import scala .jdk .CollectionConverters .*
13- import util .SourcePosition
1411import core .Contexts .*
15- import Diagnostic .*
16- import dotty .Properties
12+ import core .Decorators .*
1713import interfaces .Diagnostic .{ERROR , WARNING }
14+ import io .AbstractFile
15+ import util .SourcePosition
16+ import Diagnostic .*
1817
19- import scala .io . Codec
18+ import scala .collection . mutable
2019import scala .compiletime .uninitialized
20+ import scala .io .Codec
21+ import scala .jdk .CollectionConverters .*
22+ import scala .language .unsafeNulls
2123
2224class TestReporter protected (outWriter : PrintWriter , logLevel : Int )
2325extends Reporter with UniqueMessagePositions with HideNonSensicalMessages with MessageRendering {
@@ -30,13 +32,17 @@ extends Reporter with UniqueMessagePositions with HideNonSensicalMessages with M
3032 final def messages : Iterator [String ] = _messageBuf.iterator
3133
3234 protected final val _consoleBuf = new StringWriter
33- protected final val _consoleReporter = new ConsoleReporter (null , new PrintWriter (_consoleBuf))
35+ protected final val _consoleReporter = new ConsoleReporter (null , new PrintWriter (_consoleBuf)):
36+ override protected def renderPath (file : AbstractFile ): String = TestReporter .renderPath(file)
37+
3438 final def consoleOutput : String = _consoleBuf.toString
3539
3640 private var _skip : Boolean = false
3741 final def setSkip (): Unit = _skip = true
3842 final def skipped : Boolean = _skip
3943
44+ override protected def renderPath (file : AbstractFile ): String = TestReporter .renderPath(file)
45+
4046 protected final def inlineInfo (pos : SourcePosition )(using Context ): String =
4147 if (pos.exists) {
4248 if (pos.outer.exists)
@@ -152,10 +158,16 @@ object TestReporter {
152158 Properties .rerunFailed &&
153159 failedTestsFile.exists() &&
154160 failedTestsFile.isFile
155- )(java.nio.file. Files . readAllLines(failedTestsFile.toPath).asScala.toList)
161+ )(readAllLines(failedTestsFile.toPath).asScala.toList)
156162
157163 def writeFailedTests (tests : List [String ]): Unit =
158164 initLog()
159165 tests.foreach(failed => failedTestsWriter.println(failed))
160166 failedTestsWriter.flush()
167+
168+ def renderPath (file : AbstractFile ): String =
169+ if JFile .separatorChar == '\\ ' then
170+ file.path.replace('\\ ' , '/' )
171+ else
172+ file.path
161173}
0 commit comments