summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-04-04 22:18:30 +0000
committerpaltherr <paltherr@epfl.ch>2004-04-04 22:18:30 +0000
commit5f69afd077a95e2e3d1f9f0eefa4800b7286ffda (patch)
tree1576e540ce458517a02e4fc7126e38a88a0bae20
parentb604e761bcfc85d410767cbb7c83b97f93da9aa8 (diff)
downloadscala-5f69afd077a95e2e3d1f9f0eefa4800b7286ffda.tar.gz
scala-5f69afd077a95e2e3d1f9f0eefa4800b7286ffda.tar.bz2
scala-5f69afd077a95e2e3d1f9f0eefa4800b7286ffda.zip
- Removed references to Symbol.ERROR
-rw-r--r--sources/scala/tools/scalac/typechecker/Analyzer.scala1
-rw-r--r--sources/scalac/symtab/Type.java8
2 files changed, 3 insertions, 6 deletions
diff --git a/sources/scala/tools/scalac/typechecker/Analyzer.scala b/sources/scala/tools/scalac/typechecker/Analyzer.scala
index 9b96f359bf..569b435f32 100644
--- a/sources/scala/tools/scalac/typechecker/Analyzer.scala
+++ b/sources/scala/tools/scalac/typechecker/Analyzer.scala
@@ -216,6 +216,7 @@ class Analyzer(global: scalac_Global, descr: AnalyzerPhase) extends Transformer(
unit.error(pos, msg);
def typeError(pos: int, found: Type, req: Type): unit = {
+ if (found.isError() || req.isError()) return;
var msg: String = infer.typeErrorMsg("type mismatch", found, req);
val foundResult: Type = found.resultType();
if (foundResult != found && infer.isCompatible(foundResult, req))
diff --git a/sources/scalac/symtab/Type.java b/sources/scalac/symtab/Type.java
index bbd0455423..9adcade4a2 100644
--- a/sources/scalac/symtab/Type.java
+++ b/sources/scalac/symtab/Type.java
@@ -287,8 +287,6 @@ public class Type implements Modifiers, Kinds, TypeTags, EntryTags {
*/
public Symbol symbol() {
switch (this) {
- case ErrorType:
- return Symbol.ERROR;
case ThisType(Symbol sym):
return sym;
case TypeRef(_, Symbol sym, _):
@@ -776,7 +774,7 @@ public class Type implements Modifiers, Kinds, TypeTags, EntryTags {
public Symbol lookup(Name name) {
switch (this) {
case ErrorType:
- return Symbol.ERROR;
+ return new ErrorScope(Symbol.NONE).lookup(name);
case ThisType(_):
case SingleType(_, _):
case ConstantType(_, _):
@@ -798,7 +796,7 @@ public class Type implements Modifiers, Kinds, TypeTags, EntryTags {
public Symbol lookupNonPrivate(Name name) {
switch (this) {
case ErrorType:
- return Symbol.ERROR;
+ return new ErrorScope(Symbol.NONE).lookup(name);
case ThisType(_):
case SingleType(_, _):
case ConstantType(_, _):
@@ -906,8 +904,6 @@ public class Type implements Modifiers, Kinds, TypeTags, EntryTags {
}
private Symbol[] classes() {
switch (this) {
- case ErrorType:
- return new Symbol[] {Symbol.ERROR};
case ThisType(_):
case SingleType(_, _):
case ConstantType(_, _):