summaryrefslogtreecommitdiff
path: root/sources/scalac/typechecker/Analyzer.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/scalac/typechecker/Analyzer.java')
-rw-r--r--sources/scalac/typechecker/Analyzer.java6
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 &&