Skip to content

Commit f54c275

Browse files
committed
Cleanups in classfile parser symbol creation.
1 parent 52e7fdc commit f54c275

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,9 @@ abstract class ClassfileParser {
238238
val index = in.getChar(start + 1)
239239
val name = getExternalName(in.getChar(starts(index) + 1))
240240
//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)
242242
if (f == NoSymbol)
243-
f = definitions.getModule(name.subName(0, name.length - 1))
243+
f = definitions.getModule(name dropRight 1)
244244
} else {
245245
val origName = nme.originalName(name)
246246
val owner = if (static) ownerTpe.typeSymbol.linkedClassOfClass else ownerTpe.typeSymbol
@@ -1074,27 +1074,27 @@ abstract class ClassfileParser {
10741074
}
10751075

10761076
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
10791083

1080-
val innerClass = getOwner(jflags).newClass(name.toTypeName).setInfo(completer).setFlag(sflags)
1081-
val innerModule = getOwner(jflags).newModule(name.toTermName).setInfo(completer).setFlag(sflags)
10821084
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
10861087

10871088
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
10971093
}
1094+
1095+
val cName = className(entry.externalName)
1096+
unlinkIfPresent(cName.toTermName)
1097+
unlinkIfPresent(cName.toTypeName)
10981098
}
10991099

11001100
for (entry <- innerClasses.values) {

0 commit comments

Comments
 (0)