summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/classfile/UnPickle.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-10 19:08:48 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-10 19:08:48 +0000
commitbd9f74861ec3e664fc9e94795fd8c16b7580e1df (patch)
treefd24674b44bb117567372ac2590b1f48aeb9036d /sources/scalac/symtab/classfile/UnPickle.java
parent5998eb1012cf801a22bf494d55410b44ea452fca (diff)
downloadscala-bd9f74861ec3e664fc9e94795fd8c16b7580e1df.tar.gz
scala-bd9f74861ec3e664fc9e94795fd8c16b7580e1df.tar.bz2
scala-bd9f74861ec3e664fc9e94795fd8c16b7580e1df.zip
- Added factory method Symbol.newConstructor
- Changed method Symbol.addConstructor to receive new constructor - as argument Changed Symbol, Analyzer, class parser and - picklers to use new factory method Removed now unused methods - TermSymbol.makeConstructor/newConstructor
Diffstat (limited to 'sources/scalac/symtab/classfile/UnPickle.java')
-rw-r--r--sources/scalac/symtab/classfile/UnPickle.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/sources/scalac/symtab/classfile/UnPickle.java b/sources/scalac/symtab/classfile/UnPickle.java
index 3a3b8fa2a6..c309ed5723 100644
--- a/sources/scalac/symtab/classfile/UnPickle.java
+++ b/sources/scalac/symtab/classfile/UnPickle.java
@@ -253,9 +253,6 @@ public class UnPickle implements Kinds, Modifiers, EntryTags, TypeTags {
sym.setTypeOfThis(readTypeRef());
Symbol constr = readSymbolRef();
assert constr == sym.allConstructors();
- Symbol[] alts = constr.alternativeSymbols();
- for (int i = 0; i < alts.length; i++)
- ((TermSymbol)alts[i]).makeConstructor((ClassSymbol)sym);
break;
case VALsym:
@@ -266,8 +263,13 @@ public class UnPickle implements Kinds, Modifiers, EntryTags, TypeTags {
entries[n] = sym = moduleroot;
sym.flags = flags;
} else if (tsym == null) {
- entries[n] = sym = new TermSymbol(
- Position.NOPOS, name, owner, flags);
+ if (name == Names.CONSTRUCTOR) {
+ entries[n] = sym = owner.newConstructor(
+ Position.NOPOS, flags);
+ } else {
+ entries[n] = sym = new TermSymbol(
+ Position.NOPOS, name, owner, flags);
+ }
} else {
if (name == Names.CONSTRUCTOR) {
entries[n] = sym = tsym.allConstructors();