summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-01-31 15:08:52 +0000
committerMartin Odersky <odersky@gmail.com>2011-01-31 15:08:52 +0000
commitce173be810079a51ab4a1b682b20d1eaefd165f1 (patch)
treedd3bb78291b2861c8916fbc4961a7b85e647f27b
parent6de1404fd3821509175c76c7c109d946332b4db1 (diff)
downloadscala-ce173be810079a51ab4a1b682b20d1eaefd165f1.tar.gz
scala-ce173be810079a51ab4a1b682b20d1eaefd165f1.tar.bz2
scala-ce173be810079a51ab4a1b682b20d1eaefd165f1.zip
Part2 of fix askStructure hangs commit.
-rw-r--r--src/compiler/scala/tools/nsc/interactive/Global.scala11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/interactive/Global.scala b/src/compiler/scala/tools/nsc/interactive/Global.scala
index 644d5712ce..f06642eed4 100644
--- a/src/compiler/scala/tools/nsc/interactive/Global.scala
+++ b/src/compiler/scala/tools/nsc/interactive/Global.scala
@@ -677,7 +677,7 @@ self =>
.typed(Apply(view.tree, List(tree)) setPos tree.pos)
} catch {
case ex: TypeError =>
- debugLog("type error caught")
+ debugLog("type error caught: "+ex)
EmptyTree
}
}
@@ -737,8 +737,10 @@ self =>
if (keepLoaded) {
reloadSources(List(source))
buildStructureNow(source, response)
- } else {
+ } else if (outOfDate) {
buildStructureResponses(source) += response
+ } else {
+ buildStructureNow(source, response)
}
}
}
@@ -746,7 +748,10 @@ self =>
/** Builds structure of given source file */
protected def buildStructureNow(source: SourceFile, response: Response[List[Symbol]]) {
def forceSym(sym: Symbol) {
- sym.info.decls.iterator foreach forceSym
+ sym.info match {
+ case t: CompoundType => t.decls.iterator foreach forceSym
+ case _ =>
+ }
}
respond(response) {
onUnitOf(source) { unit =>