summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2009-09-01 18:07:50 +0000
committerIulian Dragos <jaguarul@gmail.com>2009-09-01 18:07:50 +0000
commit54b405337f0c1e19a62fcb47f8fba65d5bd1fe9c (patch)
tree225e5ec91dc00779520eed9fae544f3633b67807 /src
parent2598cf05077e22d2e2197d0082543e1fed74dbe7 (diff)
downloadscala-54b405337f0c1e19a62fcb47f8fba65d5bd1fe9c.tar.gz
scala-54b405337f0c1e19a62fcb47f8fba65d5bd1fe9c.tar.bz2
scala-54b405337f0c1e19a62fcb47f8fba65d5bd1fe9c.zip
Fixed #2123.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala5
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