summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/interactive/Global.scala
diff options
context:
space:
mode:
authorMiles Sabin <miles@milessabin.com>2009-10-14 22:10:20 +0000
committerMiles Sabin <miles@milessabin.com>2009-10-14 22:10:20 +0000
commitb57abb7bfefdc8b1c07742cd01ab2b620bcc018a (patch)
tree9532fbc6868ba3546b6fbc435ef41dd610c53ca8 /src/compiler/scala/tools/nsc/interactive/Global.scala
parent9d9889a7d6b9625aff6ee9ef72850cd9c9e7c17c (diff)
downloadscala-b57abb7bfefdc8b1c07742cd01ab2b620bcc018a.tar.gz
scala-b57abb7bfefdc8b1c07742cd01ab2b620bcc018a.tar.bz2
scala-b57abb7bfefdc8b1c07742cd01ab2b620bcc018a.zip
Scaladoc comment position fixes with tests; sca...
Scaladoc comment position fixes with tests; scaladoc comment postions are now accessible by symbol; respond retry in interactive Global is now handled properly.
Diffstat (limited to 'src/compiler/scala/tools/nsc/interactive/Global.scala')
-rw-r--r--src/compiler/scala/tools/nsc/interactive/Global.scala22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/compiler/scala/tools/nsc/interactive/Global.scala b/src/compiler/scala/tools/nsc/interactive/Global.scala
index b0b82e5743..8444065004 100644
--- a/src/compiler/scala/tools/nsc/interactive/Global.scala
+++ b/src/compiler/scala/tools/nsc/interactive/Global.scala
@@ -200,6 +200,7 @@ self =>
outOfDate = false
compileRunner = newRunnerThread
ex match {
+ case _ : FreshRunReq => // This shouldn't be reported
case _ : ValidateError => // This will have been reported elsewhere
case _ => ex.printStackTrace(); inform("Fatal Error: "+ex)
}
@@ -265,16 +266,17 @@ self =>
// ----------------- Implementations of client commmands -----------------------
def respond[T](result: Response[T])(op: => T): Unit =
- while(true)
- try {
- result set Left(op)
- return
- } catch {
- case ex : ControlException =>
- case ex =>
- result set Right(ex)
- throw ex
- }
+ try {
+ result set Left(op)
+ return
+ } catch {
+ case ex : FreshRunReq =>
+ scheduler.postWorkItem(() => respond(result)(op))
+ throw ex
+ case ex =>
+ result set Right(ex)
+ throw ex
+ }
/** Make sure a set of compilation units is loaded and parsed */
def reloadSources(sources: List[SourceFile]) {