summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/interpreter/ExprTyper.scala2
-rw-r--r--src/compiler/scala/tools/nsc/interpreter/ILoop.scala2
-rw-r--r--src/compiler/scala/tools/nsc/interpreter/IMain.scala2
-rw-r--r--src/compiler/scala/tools/nsc/interpreter/ReplReporter.scala7
-rw-r--r--src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala30
5 files changed, 21 insertions, 22 deletions
diff --git a/src/compiler/scala/tools/nsc/interpreter/ExprTyper.scala b/src/compiler/scala/tools/nsc/interpreter/ExprTyper.scala
index 3e7593cd8c..115cef7f00 100644
--- a/src/compiler/scala/tools/nsc/interpreter/ExprTyper.scala
+++ b/src/compiler/scala/tools/nsc/interpreter/ExprTyper.scala
@@ -61,7 +61,7 @@ trait ExprTyper {
else Some(trees)
}
}
- def tokens(line: String) = codeParser.tokens(line)
+ def tokens(line: String) = beSilentDuring(codeParser.tokens(line))
// TODO: integrate these into a CodeHandler[Type].
diff --git a/src/compiler/scala/tools/nsc/interpreter/ILoop.scala b/src/compiler/scala/tools/nsc/interpreter/ILoop.scala
index e9d36e0bdb..625bf2ae05 100644
--- a/src/compiler/scala/tools/nsc/interpreter/ILoop.scala
+++ b/src/compiler/scala/tools/nsc/interpreter/ILoop.scala
@@ -66,7 +66,7 @@ class ILoop(in0: Option[BufferedReader], protected val out: JPrintWriter)
// Install a signal handler so we can be prodded.
private val signallable =
- if (isReplDebug && !settings.Yreplsync.value)
+ if (isReplDebug)
Signallable("Dump repl state.")(dumpCommand())
else null
diff --git a/src/compiler/scala/tools/nsc/interpreter/IMain.scala b/src/compiler/scala/tools/nsc/interpreter/IMain.scala
index 9d042f2401..920367ce2e 100644
--- a/src/compiler/scala/tools/nsc/interpreter/IMain.scala
+++ b/src/compiler/scala/tools/nsc/interpreter/IMain.scala
@@ -1174,7 +1174,7 @@ class IMain(initialSettings: Settings, protected val out: JPrintWriter) extends
prettyPrint(code)
// old style
- parse(code) foreach { ts =>
+ beSilentDuring(parse(code)) foreach { ts =>
ts foreach { t =>
withoutUnwrapping(repldbg(asCompactString(t)))
}
diff --git a/src/compiler/scala/tools/nsc/interpreter/ReplReporter.scala b/src/compiler/scala/tools/nsc/interpreter/ReplReporter.scala
index e181f98018..dac20ad348 100644
--- a/src/compiler/scala/tools/nsc/interpreter/ReplReporter.scala
+++ b/src/compiler/scala/tools/nsc/interpreter/ReplReporter.scala
@@ -9,7 +9,7 @@ package interpreter
import reporters._
import IMain._
-class ReplReporter(intp: IMain) extends ConsoleReporter(intp.settings, null, new ReplStrippingWriter(intp)) {
+class ReplReporter(intp: IMain) extends ConsoleReporter(intp.settings, Console.in, new ReplStrippingWriter(intp)) {
override def printMessage(msg: String) {
// Avoiding deadlock if the compiler starts logging before
// the lazy val is complete.
@@ -19,4 +19,9 @@ class ReplReporter(intp: IMain) extends ConsoleReporter(intp.settings, null, new
}
else Console.println("[init] " + msg)
}
+
+ override def displayPrompt() {
+ if (intp.totalSilence) ()
+ else super.displayPrompt()
+ }
}
diff --git a/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala b/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
index a6e661c4b4..967b582f11 100644
--- a/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
+++ b/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
@@ -93,27 +93,21 @@ class ConsoleReporter(val settings: Settings, reader: BufferedReader, writer: Pr
print(pos, msg, severity)
}
- def displayPrompt(): Unit = try {
- var continue = true
- while (continue) {
- writer.print("r)esume, a)bort: ")
- writer.flush()
- var line = reader.readLine()
- if (line ne null) {
- line = line.toLowerCase()
- if ("abort" startsWith line)
- abort("user abort")
- if ("resume" startsWith line)
- continue = false
+ def displayPrompt(): Unit = {
+ writer.print("\na)bort, s)tack, r)esume: ")
+ writer.flush()
+ if (reader != null) {
+ val response = reader.read().asInstanceOf[Char].toLower
+ if (response == 'a' || response == 's') {
+ (new Exception).printStackTrace()
+ if (response == 'a')
+ sys exit 1
+
+ writer.print("\n")
+ writer.flush()
}
}
}
- catch {
- case ex: IOException => {
- ex.printStackTrace()
- abort("input read error")
- }
- }
private def abort(msg: String) = throw new Error(msg)
override def flush() { writer.flush() }