summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/classfile/UnPickle.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-10 14:16:35 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-10 14:16:35 +0000
commitde42629d73467e92dbedee498ccd531e156bcd03 (patch)
tree5d6ce12391d0b8e790a36327f84faf2cf4836bed /sources/scalac/symtab/classfile/UnPickle.java
parenta0846e3ecfad20c544f34d6fe7ecdd954c44449b (diff)
downloadscala-de42629d73467e92dbedee498ccd531e156bcd03.tar.gz
scala-de42629d73467e92dbedee498ccd531e156bcd03.tar.bz2
scala-de42629d73467e92dbedee498ccd531e156bcd03.zip
- Removed usage of methods Symbol.makeModule
Diffstat (limited to 'sources/scalac/symtab/classfile/UnPickle.java')
-rw-r--r--sources/scalac/symtab/classfile/UnPickle.java41
1 files changed, 20 insertions, 21 deletions
diff --git a/sources/scalac/symtab/classfile/UnPickle.java b/sources/scalac/symtab/classfile/UnPickle.java
index f87a411f47..3a3b8fa2a6 100644
--- a/sources/scalac/symtab/classfile/UnPickle.java
+++ b/sources/scalac/symtab/classfile/UnPickle.java
@@ -239,15 +239,16 @@ public class UnPickle implements Kinds, Modifiers, EntryTags, TypeTags {
break;
case CLASSsym:
- entries[n] = sym = new ClassSymbol(
- Position.NOPOS, name, owner, flags);
Symbol clr = ((flags & MODUL) == 0) ? classroot
: moduleroot.moduleClass();
if (name == clr.name && owner == clr.owner()) {
if (global.debug) global.log("overwriting " + clr);
- sym.copyTo(clr);
entries[n] = sym = clr;
- }
+ sym.flags = flags;
+ } else {
+ entries[n] = sym = owner.newClass(
+ Position.NOPOS, flags, name);
+ }
sym.setInfo(getType(inforef));
sym.setTypeOfThis(readTypeRef());
Symbol constr = readSymbolRef();
@@ -258,27 +259,25 @@ public class UnPickle implements Kinds, Modifiers, EntryTags, TypeTags {
break;
case VALsym:
- if (bp < end) {
- Symbol tsym = readSymbolRef();
- if (name == Names.CONSTRUCTOR) {
- entries[n] = sym = tsym.allConstructors();
- sym.flags = flags;
- } else {
- assert (flags & MODUL) != 0 : name;
- entries[n] = sym = new TermSymbol(
- Position.NOPOS, name, owner, flags)
- .makeModule((ClassSymbol) tsym);
- }
- } else {
- entries[n] = sym = new TermSymbol(
- Position.NOPOS, name, owner, flags);
- }
+ Symbol tsym = bp < end ? readSymbolRef() : null;
if (name == moduleroot.name && owner == moduleroot.owner()) {
if (global.debug)
global.log("overwriting " + moduleroot);
- sym.copyTo(moduleroot);
entries[n] = sym = moduleroot;
- }
+ sym.flags = flags;
+ } else if (tsym == null) {
+ entries[n] = sym = new TermSymbol(
+ Position.NOPOS, name, owner, flags);
+ } else {
+ if (name == Names.CONSTRUCTOR) {
+ entries[n] = sym = tsym.allConstructors();
+ } else {
+ assert (flags & MODUL) != 0: name;
+ assert tsym.isModuleClass(): Debug.show(tsym);
+ entries[n] = sym = tsym.module();
+ }
+ sym.flags = flags;
+ }
Type tp = getType(inforef);
sym.setInfo(tp.setOwner(sym));
break;