summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/classfile/UnPickle.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/scalac/symtab/classfile/UnPickle.java')
-rw-r--r--sources/scalac/symtab/classfile/UnPickle.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/sources/scalac/symtab/classfile/UnPickle.java b/sources/scalac/symtab/classfile/UnPickle.java
index f5b4f7ab4f..ed3dd1bac8 100644
--- a/sources/scalac/symtab/classfile/UnPickle.java
+++ b/sources/scalac/symtab/classfile/UnPickle.java
@@ -46,10 +46,13 @@ public class UnPickle implements Kinds, Modifiers, EntryTags {
this.moduleroot = root;
this.classroot = root.owner().lookup(root.name.toTypeName());
}
+ if (root != moduleroot && moduleroot.isModule()) {
+ moduleroot.moduleClass().setInfo(Type.NoType);
+ }
if (global.debug)
global.log(
"unpickle " + root + " " + classroot + " " + moduleroot + " " +
- moduleroot.moduleClass() + moduleroot.moduleClass().primaryConstructor());
+ moduleroot.moduleClass() + " " + moduleroot.moduleClass().primaryConstructor());
this.bytes = data;
this.bp = 0;
this.sourceName = sourceName;
@@ -69,8 +72,9 @@ public class UnPickle implements Kinds, Modifiers, EntryTags {
if (global.debug) global.log("unpickled " + root + ":" + root.rawInfo());//debug
if (!root.isInitialized())
throw new BadSignature(this, "it does not define " + root);
- if (moduleroot.isModule() && !moduleroot.moduleClass().isInitialized())
+ if (moduleroot.isModule() && moduleroot.moduleClass().type() == Type.NoType) {
moduleroot.setInfo(Type.NoType);
+ }
}
Type setOwner(Type tp, Symbol owner) {