summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean McDirmid <sean.mcdirmid@gmail.com>2008-02-17 15:47:25 +0000
committerSean McDirmid <sean.mcdirmid@gmail.com>2008-02-17 15:47:25 +0000
commitc0fd2c90d082918f20047b6ca7531a822347c8ed (patch)
tree119799aea1c5f7ab02d8b798625759508f01659d /src
parent8b0df2f59ed93ed028ecc984a9289fdaaaffa027 (diff)
downloadscala-c0fd2c90d082918f20047b6ca7531a822347c8ed.tar.gz
scala-c0fd2c90d082918f20047b6ca7531a822347c8ed.tar.bz2
scala-c0fd2c90d082918f20047b6ca7531a822347c8ed.zip
More small fixes to the new IDE.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/IdeSupport.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala15
2 files changed, 15 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/IdeSupport.scala b/src/compiler/scala/tools/nsc/symtab/IdeSupport.scala
index dd9c529531..097e57950b 100644
--- a/src/compiler/scala/tools/nsc/symtab/IdeSupport.scala
+++ b/src/compiler/scala/tools/nsc/symtab/IdeSupport.scala
@@ -319,7 +319,7 @@ trait IdeSupport extends SymbolTable { // added to global, not analyzers.
finish(existing)
}
- assert(symbol != NoSymbol)
+ if (symbol == NoSymbol) return symbol
// catch double defs.
record(currentClient, symbol.name)
val i = reuseMap(this).elements
diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala b/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala
index 78fd571379..d40bd62c4a 100644
--- a/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala
+++ b/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala
@@ -179,7 +179,20 @@ trait SymbolWalker {
dup.tpe = tree.tpe
f(dup)
} else f(tree.ref)
- case tree : CompoundTypeTree => f(tree.templ)
+ case tree : CompoundTypeTree =>
+ if (tree.tpe.typeSymbol.isRefinementClass) tree.tpe.typeSymbol.info match {
+ case tpe : RefinedType =>
+ tpe.parents.zip(tree.templ.parents).foreach{
+ case (tpe,tree) =>
+ if (tree.hasSymbol && (tree.symbol == NoSymbol || tree.symbol == null)) {
+ tree.symbol = tpe.typeSymbol
+ }
+ }
+
+ case _ =>
+ }
+
+ f(tree.templ)
case tree : Template => fs(tree.parents); f(tree.self); fs(tree.body)
case tree : SelectFromTypeTree => {
if (tree.qualifier.tpe == null) tree.tpe match {