summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2008-10-24 13:53:16 +0000
committerIulian Dragos <jaguarul@gmail.com>2008-10-24 13:53:16 +0000
commit0469d412cdbddec8823a7af95373cc97ebfa69a6 (patch)
tree2dc5a4b49e7cd1165a815f19dec4b61e83212cd8 /src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
parent597f971fcdb67b601b3c05593e9ad1ff492c5f43 (diff)
downloadscala-0469d412cdbddec8823a7af95373cc97ebfa69a6.tar.gz
scala-0469d412cdbddec8823a7af95373cc97ebfa69a6.tar.bz2
scala-0469d412cdbddec8823a7af95373cc97ebfa69a6.zip
Fixed the icode reader (#1402).
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index 5a74c9087c..e6422c5b99 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -204,7 +204,11 @@ abstract class ClassfileParser {
in.buf(start) != CONSTANT_METHODREF &&
in.buf(start) != CONSTANT_INTFMETHODREF) errorBadTag(start)
val ownerTpe = getClassOrArrayType(in.getChar(start + 1))
+ if (settings.debug.value)
+ log("getMemberSymbol(static: " + static + "): owner type: " + ownerTpe + " " + ownerTpe.typeSymbol.originalName)
val (name, tpe) = getNameAndType(in.getChar(start + 3), ownerTpe)
+ if (settings.debug.value)
+ log("getMemberSymbol: name and tpe: " + name + ": " + tpe)
if (name == nme.MODULE_INSTANCE_FIELD) {
val index = in.getChar(start + 1)
val name = getExternalName(in.getChar(starts(index) + 1))
@@ -377,8 +381,10 @@ abstract class ClassfileParser {
val classInfo = ClassInfoType(parents, instanceDefs, clazz)
val staticInfo = ClassInfoType(List(), staticDefs, statics)
- if (!isScala && !isScalaRaw)
+ if (!isScala && !isScalaRaw) {
+ //println("Entering inner classes for " + clazz)
enterOwnInnerClasses
+ }
val curbp = in.bp
skipMembers() // fields
skipMembers() // methods
@@ -386,7 +392,7 @@ abstract class ClassfileParser {
clazz.setFlag(sflags)
setPrivateWithin(clazz, jflags)
setPrivateWithin(staticModule, jflags)
- if (!hasMeta) {
+ if (!hasMeta || isScalaRaw) {
clazz.setInfo(classInfo)
}
statics.setInfo(staticInfo)