diff options
Diffstat (limited to 'sources/scalac/symtab/Symbol.java')
-rw-r--r-- | sources/scalac/symtab/Symbol.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java index 585bc5de95..6f1444f827 100644 --- a/sources/scalac/symtab/Symbol.java +++ b/sources/scalac/symtab/Symbol.java @@ -516,9 +516,9 @@ public abstract class Symbol implements Modifiers, Kinds { /** Return first alternative if this has a (possibly lazy) * overloaded type, otherwise symbol itself. - * Needed only in ClassSymbol.primaryConstructor() + * Needed in ClassSymbol.primaryConstructor() and in UnPickle. */ - Symbol firstAlternative() { + public Symbol firstAlternative() { if (infos.info instanceof Type.OverloadedType) return infos.info.alternativeSymbols()[0]; else if (infos.info instanceof LazyOverloadedType) @@ -1419,7 +1419,8 @@ public class ClassSymbol extends TypeSymbol { super.copyTo(sym); Symbol symconstr = ((ClassSymbol) sym).constructor; constructor.copyTo(symconstr); - symconstr.setInfo(fixConstrType(symconstr.rawInfo(), sym)); + if (constructor.isInitialized()) + symconstr.setInfo(fixConstrType(symconstr.type(), sym)); if (thisSym != this) sym.setTypeOfThis(typeOfThis()); } |