summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2009-08-28 16:06:11 +0000
committerIulian Dragos <jaguarul@gmail.com>2009-08-28 16:06:11 +0000
commit36b00f5234b2b3ced155e5bc9da9b239211a9520 (patch)
tree0ac4ea6298ad2c02a3d5d6f2339ae1fb06839609
parentd582588b6d6837099d0b391ff5fc70700dc05dce (diff)
downloadscala-36b00f5234b2b3ced155e5bc9da9b239211a9520.tar.gz
scala-36b00f5234b2b3ced155e5bc9da9b239211a9520.tar.bz2
scala-36b00f5234b2b3ced155e5bc9da9b239211a9520.zip
I hope to have fixed the optimized build.
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala8
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala2
2 files changed, 7 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index 3f55a2e908..a2e7a4a2a4 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -362,8 +362,12 @@ abstract class ClassfileParser {
val parts = name.toString.split(Array('.', '$'))
var sym: Symbol = definitions.RootClass
atPhase(currentRun.flattenPhase.prev) {
- for (part <- parts) {
- sym = sym.info.decl(part)//.suchThat(module == _.isModule)
+ for (part0 <- parts; val part = newTermName(part0)) {
+ val sym1 = sym.info.decl(part.encode)//.suchThat(module == _.isModule)
+ if (sym1 == NoSymbol)
+ sym = sym.info.decl(part.encode.toTypeName)
+ else
+ sym = sym1
}
}
// println("found: " + sym)
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
index c52cc3e796..b11d1b74a4 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
@@ -196,7 +196,7 @@ abstract class ICodeReader extends ClassfileParser {
iface.owner.info // force the mixin type-transformer
definitions.getClass(name)
} else if (name.endsWith("$")) {
- val sym = forceMangledName(name.subName(0, name.length -1), true)
+ val sym = forceMangledName(name.subName(0, name.length -1).decode, true)
if (sym == NoSymbol)
definitions.getModule(name.subName(0, name.length - 1))
else sym