Skip to content

Commit 3d5b4fd

Browse files
committed
Optimization for Scala2 symbol unpickling
1 parent 319a0a3 commit 3d5b4fd

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

compiler/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,11 @@ class Scala2Unpickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClas
431431
owner.setFlag(DefaultParameterized)
432432
}
433433

434-
name = name.adjustIfModuleClass(flags)
434+
var mangledName = name
435+
if (flags is (ModuleClass, butNot = Package)) {
436+
name = name.moduleClassName
437+
mangledName = mangledName ++ "$"
438+
}
435439
if (flags is Method) {
436440
name =
437441
if (name == nme.TRAIT_CONSTRUCTOR) nme.CONSTRUCTOR
@@ -446,8 +450,7 @@ class Scala2Unpickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClas
446450
flags = flags &~ Scala2SuperAccessor
447451
}
448452

449-
val mname = name.mangled
450-
def nameMatches(rootName: Name) = mname == rootName.mangled
453+
def nameMatches(rootName: Name) = mangledName == rootName.mangled
451454
def isClassRoot = nameMatches(classRoot.name) && (owner == classRoot.owner) && !(flags is ModuleClass)
452455
def isModuleClassRoot = nameMatches(moduleClassRoot.name) && (owner == moduleClassRoot.owner) && (flags is Module)
453456
def isModuleRoot = nameMatches(moduleClassRoot.name.sourceModuleName) && (owner == moduleClassRoot.owner) && (flags is Module)

0 commit comments

Comments
 (0)