summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/classfile/UnPickle.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-04-09 01:38:50 +0000
committerpaltherr <paltherr@epfl.ch>2004-04-09 01:38:50 +0000
commit2a309487c5cdc3bafb52b6e9ebcb084cf9849b2f (patch)
treeb082d5430376b15eca7b01c5d8c01999d55a8b09 /sources/scalac/symtab/classfile/UnPickle.java
parent8dd1635f7f4661e39eb9b77a56e14f92e0379786 (diff)
downloadscala-2a309487c5cdc3bafb52b6e9ebcb084cf9849b2f.tar.gz
scala-2a309487c5cdc3bafb52b6e9ebcb084cf9849b2f.tar.bz2
scala-2a309487c5cdc3bafb52b6e9ebcb084cf9849b2f.zip
- Replaced Symbol.dualClass by Symbol.linkedCla...
- Replaced Symbol.dualClass by Symbol.linkedClass and Symbol.linkedModule
Diffstat (limited to 'sources/scalac/symtab/classfile/UnPickle.java')
-rw-r--r--sources/scalac/symtab/classfile/UnPickle.java20
1 files changed, 9 insertions, 11 deletions
diff --git a/sources/scalac/symtab/classfile/UnPickle.java b/sources/scalac/symtab/classfile/UnPickle.java
index ba27cbbf60..5f6997b7a3 100644
--- a/sources/scalac/symtab/classfile/UnPickle.java
+++ b/sources/scalac/symtab/classfile/UnPickle.java
@@ -55,16 +55,10 @@ public class UnPickle implements Kinds, Modifiers, EntryTags, TypeTags {
private UnPickle(Global global, byte[] data, Symbol root) {
this.global = global;
- if (root.isConstructor()) {
- this.classroot = root.constructorClass();
- this.moduleroot = classroot.dualClass().module();
- } else if (root.isType()) {
- this.classroot = root;
- this.moduleroot = classroot.dualClass().module();
- } else {
- this.moduleroot = root;
- this.classroot = root.owner().lookup(root.name.toTypeName());
- }
+ this.classroot = root.linkedClass();
+ this.moduleroot = root.linkedModule();
+ assert !classroot.isNone(): Debug.show(root);
+ assert !moduleroot.isNone(): Debug.show(root);
if (root != moduleroot && moduleroot.isModule()) {
moduleroot.moduleClass().setInfo(Type.NoType);
}
@@ -267,9 +261,13 @@ public class UnPickle implements Kinds, Modifiers, EntryTags, TypeTags {
if (global.debug) global.log("overwriting " + clr);
entries[n] = sym = clr;
sym.flags = flags;
- } else {
+ } else if ((flags & MODUL) == 0) {
entries[n] = sym = owner.newClass(
Position.NOPOS, flags, name);
+ } else {
+ entries[n] = sym = owner.newModule(
+ Position.NOPOS, flags, name.toTermName())
+ .moduleClass();
}
sym.setInfo(getType(inforef, sym));
sym.setTypeOfThis(readTypeRef(sym));