summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2009-06-18 16:02:22 +0000
committerIulian Dragos <jaguarul@gmail.com>2009-06-18 16:02:22 +0000
commit9e52f5beda632d12e439997d4a7d3a5a36e4ea9a (patch)
tree5be75aa90efc16dd1aa2489c6cad705e8a90f057 /src
parente6c140fecd361fdec9ad1d3c1579b8bbd3e9f007 (diff)
downloadscala-9e52f5beda632d12e439997d4a7d3a5a36e4ea9a.tar.gz
scala-9e52f5beda632d12e439997d4a7d3a5a36e4ea9a.tar.bz2
scala-9e52f5beda632d12e439997d4a7d3a5a36e4ea9a.zip
Fixed symbol loaders when called at a very late...
Fixed symbol loaders when called at a very late phase (for example, when inner classes are lifted).
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala4
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala7
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)
}
}