diff options
author | Martin Odersky <odersky@gmail.com> | 2003-02-14 13:38:50 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-02-14 13:38:50 +0000 |
commit | fd3f10df3cd88fe3b970f8312a479ae63f0803b8 (patch) | |
tree | 4417d42a8b7a1a326c1eab8dcb867a9de7c90659 /sources/scalac/typechecker/Analyzer.java | |
parent | 23d2bfbeb21f63d82ed46d5b1b0b85b1ed2f4355 (diff) | |
download | scala-fd3f10df3cd88fe3b970f8312a479ae63f0803b8.tar.gz scala-fd3f10df3cd88fe3b970f8312a479ae63f0803b8.tar.bz2 scala-fd3f10df3cd88fe3b970f8312a479ae63f0803b8.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/typechecker/Analyzer.java')
-rw-r--r-- | sources/scalac/typechecker/Analyzer.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sources/scalac/typechecker/Analyzer.java b/sources/scalac/typechecker/Analyzer.java index 5558239d1c..9442110dfd 100644 --- a/sources/scalac/typechecker/Analyzer.java +++ b/sources/scalac/typechecker/Analyzer.java @@ -617,6 +617,7 @@ public class Analyzer extends Transformer implements Modifiers, Kinds { case ClassDef(int mods, Name name, Tree.TypeDef[] tparams, Tree.ValDef[][] vparams, _, Tree.Template templ): ClassSymbol clazz = new ClassSymbol(tree.pos, name, owner, mods); if (clazz.isLocalClass()) unit.mangler.setMangledName(clazz); + enterSym(tree, clazz.constructor()); if ((mods & CASE) != 0) { // enter case constructor method. @@ -1045,6 +1046,7 @@ public class Analyzer extends Transformer implements Modifiers, Kinds { if (sym.isTerm() && (sym.flags & MUTABLE) == 0 && symtype.isObjectType() && qual.type.isStable()) symtype = Type.singleType(qual.type, sym); + //System.out.println(qual.type + ".member: " + sym + ":" + symtype);//DEBUG return copy.Select(tree, qual, name) .setSymbol(sym).setType(symtype); } @@ -1658,8 +1660,8 @@ public class Analyzer extends Transformer implements Modifiers, Kinds { Scope.SymbolIterator it = clazz.members().iterator(); while (it.hasNext()) { Symbol sym1 = it.next(); - if (base.lookupNonPrivate(sym1.name).kind != NONE && - !base.memberType(sym1).isSameAs(sym1.type())) + Symbol basesym1 = base.lookupNonPrivate(sym1.name); + if (basesym1.kind != NONE && !basesym1.info().isSameAs(sym1.info())) refinement.enter(sym1); } if (refinement.elems == Scope.Entry.NONE && |