summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/classfile/ClassfileParser.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/ClassfileParser.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/ClassfileParser.java')
-rw-r--r--sources/scalac/symtab/classfile/ClassfileParser.java10
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);