summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools
diff options
context:
space:
mode:
authorLex Spoon <lex@lexspoon.org>2007-06-01 13:15:03 +0000
committerLex Spoon <lex@lexspoon.org>2007-06-01 13:15:03 +0000
commit2d6d68fb6d828203e413fb91e5c2a5c161479eab (patch)
treec97f6ed0424edd4c73c108fa6a83cac603c9d5fa /src/compiler/scala/tools
parent2fb330d244ffcdfe7ee7115a544a0e4bcf5af97b (diff)
downloadscala-2d6d68fb6d828203e413fb91e5c2a5c161479eab.tar.gz
scala-2d6d68fb6d828203e413fb91e5c2a5c161479eab.tar.bz2
scala-2d6d68fb6d828203e413fb91e5c2a5c161479eab.zip
Added Reporter.flush()
Diffstat (limited to 'src/compiler/scala/tools')
-rw-r--r--src/compiler/scala/tools/nsc/Interpreter.scala4
-rw-r--r--src/compiler/scala/tools/nsc/Main.scala4
-rw-r--r--src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala1
-rw-r--r--src/compiler/scala/tools/nsc/reporters/Reporter.scala3
4 files changed, 12 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/Interpreter.scala b/src/compiler/scala/tools/nsc/Interpreter.scala
index 554ec0c221..c93dcf2ff3 100644
--- a/src/compiler/scala/tools/nsc/Interpreter.scala
+++ b/src/compiler/scala/tools/nsc/Interpreter.scala
@@ -497,9 +497,13 @@ class Interpreter(val settings: Settings, out: PrintWriter) {
* class files for this instance. This cannot safely be done after
* each command is executed because of Java's demand loading.
* </p>
+ * <p>
+ * Also, this flushes the reporter's output.
+ * </p>
*/
def close() {
Interpreter.deleteRecursively(classfilePath)
+ reporter.flush()
}
/** A traverser that finds all mentioned identifiers, i.e. things
diff --git a/src/compiler/scala/tools/nsc/Main.scala b/src/compiler/scala/tools/nsc/Main.scala
index 97a0666d6c..b257545a36 100644
--- a/src/compiler/scala/tools/nsc/Main.scala
+++ b/src/compiler/scala/tools/nsc/Main.scala
@@ -48,6 +48,10 @@ object Main extends AnyRef with EvalLoop {
else {
try {
object compiler extends Global(command.settings, reporter)
+ if (reporter.hasErrors) {
+ reporter.flush()
+ return
+ }
if (command.settings.resident.value)
resident(compiler)
else if (command.files.isEmpty)
diff --git a/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala b/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
index 417f80a1ca..a038959056 100644
--- a/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
+++ b/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
@@ -122,4 +122,5 @@ class ConsoleReporter(val settings: Settings, reader: BufferedReader, writer: Pr
}
}
+ override def flush() { writer.flush() }
}
diff --git a/src/compiler/scala/tools/nsc/reporters/Reporter.scala b/src/compiler/scala/tools/nsc/reporters/Reporter.scala
index d5ae69ca0c..5a65087a70 100644
--- a/src/compiler/scala/tools/nsc/reporters/Reporter.scala
+++ b/src/compiler/scala/tools/nsc/reporters/Reporter.scala
@@ -32,6 +32,9 @@ abstract class Reporter {
var cancelled: Boolean = false
def hasErrors: Boolean = ERROR.count != 0 || cancelled
+ /** Flush all output */
+ def flush() { }
+
protected def info0(pos: Position, msg: String, severity: Severity, force: Boolean): Unit
def info(pos: Position, msg: String, force: Boolean): Unit = info0(pos, msg, INFO, force)