From bb41ff09e1db4b7e633668f3b3ee4e91697b6d28 Mon Sep 17 00:00:00 2001 From: Sean McDirmid Date: Mon, 30 Jun 2008 13:47:20 +0000 Subject: Bug fixes. --- src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala | 5 +++++ src/compiler/scala/tools/nsc/symtab/Symbols.scala | 1 + src/compiler/scala/tools/nsc/symtab/Types.scala | 6 ++++++ src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala | 6 +++++- 4 files changed, 17 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala b/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala index dc39860bc2..c5672ba06a 100644 --- a/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala +++ b/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala @@ -171,6 +171,11 @@ trait SymbolWalker { arg.tpe = tpe } } + if (tree.tpt.tpe == null) { + assert(true) + tree.tpt.tpe = tree.tpe + } + } f(tree.tpt); fs(tree.args) diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala index c673dc30bb..017372f6c0 100644 --- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala +++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala @@ -493,6 +493,7 @@ trait Symbols { var cnt = 0 while (validTo == NoPeriod) { //if (settings.debug.value) System.out.println("completing " + this);//DEBUG + if (inIDE && (infos eq null)) return ErrorType assert(infos ne null, this.name) assert(infos.prev eq null, this.name) val tp = infos.info diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index fbfae15b15..0b2ff51fc4 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -492,6 +492,12 @@ trait Types { else isSubType(this, that))); if (util.Statistics.enabled) subtypeMillis = subtypeMillis + currentTime - startTime + if (!result && this.isInstanceOf[ExistentialType]) { + Console.println("XXX: " + this + " " + that) + assert(true) + assert(true) + } + result } diff --git a/src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala b/src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala index 4781288caf..3f9fb4ac12 100644 --- a/src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala +++ b/src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala @@ -28,7 +28,11 @@ trait IdeSupport extends Analyzer { assert(!sym.hasRawInfo || sym.rawInfo == NoType) // type information has already been reset. if (currentClient.makeNoChanges) { sym.setInfo(tpe) - sym.info // force completion. + try { + sym.info // force completion. + } catch { + case e => + } return sym } object tpe0 extends LazyType with SimpleTypeProxy { -- cgit v1.2.3