diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala | 4 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index 56e3dc2d5d..d05cae979b 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -990,8 +990,8 @@ abstract class ClassfileParser { case Some(entry) => val sym = classSymbol(entry.outerName) if (static) { - val s = sym.linkedModuleOfClass.info.member(innerName.toTypeName) - assert(s ne NoSymbol, sym) + val s = atPhase(currentRun.flattenPhase.prev)(sym.linkedModuleOfClass.info.member(innerName.toTypeName)) + assert(s ne NoSymbol, sym + "." + innerName + " linkedModule: " + sym.linkedModuleOfClass + sym.linkedModuleOfClass.info.members) s } else sym.info.member(innerName.toTypeName) diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala b/src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala index f5aa4ed41b..dbdb4e1ad7 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala @@ -812,8 +812,11 @@ abstract class UnPickler { override def complete(sym: Symbol) { super.complete(sym) var alias = at(j, readSymbol) - if (alias hasFlag OVERLOADED) - alias = alias suchThat (alt => sym.tpe =:= sym.owner.thisType.memberType(alt)) + if (alias hasFlag OVERLOADED) { + atPhase(currentRun.picklerPhase) { + alias = alias suchThat (alt => sym.tpe =:= sym.owner.thisType.memberType(alt)) + } + } sym.asInstanceOf[TermSymbol].setAlias(alias) } } |