summaryrefslogtreecommitdiff
path: root/sources/scalac/typechecker/Analyzer.java
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-09-02 17:27:57 +0000
committerMartin Odersky <odersky@gmail.com>2003-09-02 17:27:57 +0000
commitd8a3d0acaa3ff4bae5a20ff64d265754e7c1fbe5 (patch)
treeb22dd299335625f6970d2374dda2001e66cc755e /sources/scalac/typechecker/Analyzer.java
parentdd1ebac2aae5844ba01dbe2aab6e7fd67e19c15a (diff)
downloadscala-d8a3d0acaa3ff4bae5a20ff64d265754e7c1fbe5.tar.gz
scala-d8a3d0acaa3ff4bae5a20ff64d265754e7c1fbe5.tar.bz2
scala-d8a3d0acaa3ff4bae5a20ff64d265754e7c1fbe5.zip
*** empty log message ***
Diffstat (limited to 'sources/scalac/typechecker/Analyzer.java')
-rw-r--r--sources/scalac/typechecker/Analyzer.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/sources/scalac/typechecker/Analyzer.java b/sources/scalac/typechecker/Analyzer.java
index 8cf7347498..2c887c9393 100644
--- a/sources/scalac/typechecker/Analyzer.java
+++ b/sources/scalac/typechecker/Analyzer.java
@@ -368,7 +368,8 @@ public class Analyzer extends Transformer implements Modifiers, Kinds {
}
if ((bsym.flags & FINAL) != 0) {
error(constrs[i].pos, "illegal inheritance from final class");
- } else if ((bsym.flags & SEALED) != 0) {
+ } else if (bsym.isSealed() ||
+ bsym.isSubClass(definitions.ANYVAL_CLASS)) {
// are we in same scope as base type definition?
Scope.Entry e = context.scope.lookupEntry(bsym.name);
if (e.sym != bsym || e.owner != context.scope) {
@@ -1248,12 +1249,12 @@ public class Analyzer extends Transformer implements Modifiers, Kinds {
if (seqtp != Type.NoType) {
tree.type = seqConstructorType(seqtp, pt);
} else {
- error(tree.pos, "expected pattern type " + pt +
- " does not conform to sequence " + clazz);
+ return error(tree.pos, "expected pattern type " + pt +
+ " does not conform to sequence " + clazz);
}
} else if (tree.type != Type.ErrorType) {
- error(tree.pos, tree.type.symbol() +
- " is neither a case class constructor nor a sequence class constructor");
+ return error(tree.pos, tree.type.symbol() +
+ " is neither a case class constructor nor a sequence class constructor");
}
}
if ((mode & FUNmode) != 0) {