diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2008-10-24 13:53:16 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2008-10-24 13:53:16 +0000 |
commit | 0469d412cdbddec8823a7af95373cc97ebfa69a6 (patch) | |
tree | 2dc5a4b49e7cd1165a815f19dec4b61e83212cd8 /src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala | |
parent | 597f971fcdb67b601b3c05593e9ad1ff492c5f43 (diff) | |
download | scala-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.scala | 10 |
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) |