summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean McDirmid <sean.mcdirmid@gmail.com>2008-06-30 13:47:20 +0000
committerSean McDirmid <sean.mcdirmid@gmail.com>2008-06-30 13:47:20 +0000
commitbb41ff09e1db4b7e633668f3b3ee4e91697b6d28 (patch)
tree6824918ebd2c6ddacf65ad75682ac83eb866146f /src
parentf5e1103a0d6d46015d7bc1ce0cf69cedcd91b4f9 (diff)
downloadscala-bb41ff09e1db4b7e633668f3b3ee4e91697b6d28.tar.gz
scala-bb41ff09e1db4b7e633668f3b3ee4e91697b6d28.tar.bz2
scala-bb41ff09e1db4b7e633668f3b3ee4e91697b6d28.zip
Bug fixes.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala5
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala1
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala6
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala6
4 files changed, 17 insertions, 1 deletions
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 {