diff options
Diffstat (limited to 'src/dotty/tools/dotc/core/pickling')
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/ClassfileParser.scala | 4 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/UnPickler.scala | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala index 4981a6f4e..ac0e86110 100644 --- a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala +++ b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala @@ -684,7 +684,7 @@ class ClassfileParser( innerClasses.get(externalName) match { case Some(entry) => - val outerName = entry.outerName.stripModuleSuffix + val outerName = entry.outerName.stripModuleClassSuffix val owner = classSymbol(outerName) val result = cctx.atPhaseNotLaterThanTyper { implicit ctx => getMember(owner, innerName.toTypeName) @@ -808,7 +808,7 @@ class ClassfileParser( val start = starts(index) if (in.buf(start).toInt != CONSTANT_CLASS) errorBadTag(start) val name = getExternalName(in.getChar(start + 1)) - if (name.isModuleName) c = cctx.requiredModule(name.stripModuleSuffix.asTermName) + if (name.isModuleClassName) c = cctx.requiredModule(name.stripModuleClassSuffix.asTermName) else c = classNameToSymbol(name) values(index) = c } diff --git a/src/dotty/tools/dotc/core/pickling/UnPickler.scala b/src/dotty/tools/dotc/core/pickling/UnPickler.scala index c47b3b2d4..bed88e1dd 100644 --- a/src/dotty/tools/dotc/core/pickling/UnPickler.scala +++ b/src/dotty/tools/dotc/core/pickling/UnPickler.scala @@ -412,9 +412,10 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: // symbols that were pickled with Pickler.writeSymInfo val nameref = readNat() - val name = at(nameref, readName) + val name0 = at(nameref, readName) val owner = readSymbolRef() - val flags = unpickleScalaFlags(readLongNat(), name.isTypeName) + val flags = unpickleScalaFlags(readLongNat(), name0.isTypeName) + val name = name0.adjustIfModuleClass(flags) def isClassRoot = (name == classRoot.name) && (owner == classRoot.owner) && !(flags is ModuleClass) def isModuleClassRoot = (name == moduleClassRoot.name) && (owner == moduleClassRoot.owner) && (flags is Module) |