@@ -238,9 +238,9 @@ abstract class ClassfileParser {
238
238
val index = in.getChar(start + 1 )
239
239
val name = getExternalName(in.getChar(starts(index) + 1 ))
240
240
// assert(name.endsWith("$"), "Not a module class: " + name)
241
- f = forceMangledName(name.subName( 0 , name.length - 1 ) , true )
241
+ f = forceMangledName(name dropRight 1 , true )
242
242
if (f == NoSymbol )
243
- f = definitions.getModule(name.subName( 0 , name.length - 1 ) )
243
+ f = definitions.getModule(name dropRight 1 )
244
244
} else {
245
245
val origName = nme.originalName(name)
246
246
val owner = if (static) ownerTpe.typeSymbol.linkedClassOfClass else ownerTpe.typeSymbol
@@ -1074,27 +1074,27 @@ abstract class ClassfileParser {
1074
1074
}
1075
1075
1076
1076
def enterClassAndModule (entry : InnerClassEntry , completer : global.loaders.SymbolLoader , jflags : Int ) {
1077
- val name = entry.originalName
1078
- var sflags = toScalaClassFlags(jflags)
1077
+ val name = entry.originalName
1078
+ var sflags = toScalaClassFlags(jflags)
1079
+ val owner = getOwner(jflags)
1080
+ val scope = getScope(jflags)
1081
+ val innerClass = owner.newClass(name.toTypeName, NoPosition , sflags) setInfo completer
1082
+ val innerModule = owner.newModule(name.toTermName, NoPosition , sflags) setInfo completer
1079
1083
1080
- val innerClass = getOwner(jflags).newClass(name.toTypeName).setInfo(completer).setFlag(sflags)
1081
- val innerModule = getOwner(jflags).newModule(name.toTermName).setInfo(completer).setFlag(sflags)
1082
1084
innerModule.moduleClass setInfo global.loaders.moduleClassLoader
1083
-
1084
- getScope(jflags) enter innerClass
1085
- getScope(jflags) enter innerModule
1085
+ scope enter innerClass
1086
+ scope enter innerModule
1086
1087
1087
1088
val decls = innerClass.enclosingPackage.info.decls
1088
- val e = decls.lookupEntry(className(entry.externalName))
1089
- if (e ne null ) {
1090
- // println("removing " + e)
1091
- decls.unlink(e)
1092
- }
1093
- val e1 = decls.lookupEntry(className(entry.externalName).toTypeName)
1094
- if (e1 ne null ) {
1095
- // println("removing " + e1)
1096
- decls.unlink(e1)
1089
+ def unlinkIfPresent (name : Name ) = {
1090
+ val e = decls lookupEntry name
1091
+ if (e ne null )
1092
+ decls unlink e
1097
1093
}
1094
+
1095
+ val cName = className(entry.externalName)
1096
+ unlinkIfPresent(cName.toTermName)
1097
+ unlinkIfPresent(cName.toTypeName)
1098
1098
}
1099
1099
1100
1100
for (entry <- innerClasses.values) {
0 commit comments