diff options
author | paltherr <paltherr@epfl.ch> | 2004-03-10 19:08:48 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-03-10 19:08:48 +0000 |
commit | bd9f74861ec3e664fc9e94795fd8c16b7580e1df (patch) | |
tree | fd24674b44bb117567372ac2590b1f48aeb9036d /sources/scalac/symtab/classfile/ClassfileParser.java | |
parent | 5998eb1012cf801a22bf494d55410b44ea452fca (diff) | |
download | scala-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/ClassfileParser.java')
-rw-r--r-- | sources/scalac/symtab/classfile/ClassfileParser.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sources/scalac/symtab/classfile/ClassfileParser.java b/sources/scalac/symtab/classfile/ClassfileParser.java index 406f79f54a..bdb76e7b71 100644 --- a/sources/scalac/symtab/classfile/ClassfileParser.java +++ b/sources/scalac/symtab/classfile/ClassfileParser.java @@ -208,7 +208,7 @@ public class ClassfileParser implements ClassfileConstants { Name name = (Name)pool.readPool(in.nextChar()); Type type = readType(in.nextChar()); if (CONSTR_N.equals(name)) { - Symbol s = TermSymbol.newConstructor(c, sflags); + Symbol s = c.newConstructor(Position.NOPOS, sflags); // kick out package visible or private constructors if (((flags & JAVA_ACC_PRIVATE) != 0) || ((flags & (JAVA_ACC_PROTECTED | JAVA_ACC_PUBLIC)) == 0)) { @@ -223,9 +223,11 @@ public class ClassfileParser implements ClassfileConstants { throw new ApplicationError(); } Symbol constr = c.primaryConstructor(); - if (constr.isInitialized()) - constr = c.addConstructor(); - s.copyTo(constr); + if (constr.isInitialized()) { + c.addConstructor(constr = s); + } else { + constr.flags = sflags; + } setParamOwners(type, constr); constr.setInfo(type); attrib.readAttributes(constr, type, METH_ATTR); |