diff options
author | Sean McDirmid <sean.mcdirmid@gmail.com> | 2008-02-17 15:47:25 +0000 |
---|---|---|
committer | Sean McDirmid <sean.mcdirmid@gmail.com> | 2008-02-17 15:47:25 +0000 |
commit | c0fd2c90d082918f20047b6ca7531a822347c8ed (patch) | |
tree | 119799aea1c5f7ab02d8b798625759508f01659d /src | |
parent | 8b0df2f59ed93ed028ecc984a9289fdaaaffa027 (diff) | |
download | scala-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.scala | 2 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala | 15 |
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 { |