diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2009-09-01 18:07:50 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2009-09-01 18:07:50 +0000 |
commit | 54b405337f0c1e19a62fcb47f8fba65d5bd1fe9c (patch) | |
tree | 225e5ec91dc00779520eed9fae544f3633b67807 /src/compiler | |
parent | 2598cf05077e22d2e2197d0082543e1fed74dbe7 (diff) | |
download | scala-54b405337f0c1e19a62fcb47f8fba65d5bd1fe9c.tar.gz scala-54b405337f0c1e19a62fcb47f8fba65d5bd1fe9c.tar.bz2 scala-54b405337f0c1e19a62fcb47f8fba65d5bd1fe9c.zip |
Fixed #2123.
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala | 2 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala b/src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala index cd9267e0c4..248b24bc43 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala @@ -195,6 +195,8 @@ abstract class ClosureElimination extends SubComponent { CONSTANT(k) case Deref(This) => THIS(definitions.ObjectClass) + case Boxed(LocalVar(v)) => + LOAD_LOCAL(v) } /** is field 'f' accessible from method 'm'? */ diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index 5aafda4430..3816b89e59 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -1002,7 +1002,10 @@ abstract class ClassfileParser { innerClasses.get(externalName) match { case Some(entry) => - val sym = classSymbol(entry.outerName) + val outerName = + if (entry.outerName.endsWith("$")) entry.outerName.subName(0, entry.outerName.length - 1) + else entry.outerName + val sym = classSymbol(outerName) val s = atPhase(currentRun.typerPhase)(getMember(sym, innerName.toTypeName)) assert(s ne NoSymbol, sym + "." + innerName + " linkedModule: " + sym.linkedModuleOfClass + sym.linkedModuleOfClass.info.members) s |