Skip to content

Commit 656eabe

Browse files
committed
Decode names of package members on enter
Avoids mutable names and the hassles associated with them.
1 parent 128b9fe commit 656eabe

File tree

4 files changed

+3
-12
lines changed

4 files changed

+3
-12
lines changed

compiler/src/dotty/tools/dotc/core/SymDenotations.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ object SymDenotations {
125125

126126
// ------ Getting and setting fields -----------------------------
127127

128-
private[this] var myName = initName
129128
private[this] var myFlags: FlagSet = adaptFlags(initFlags)
130129
private[this] var myInfo: Type = initInfo
131130
private[this] var myPrivateWithin: Symbol = initPrivateWithin

compiler/src/dotty/tools/dotc/core/SymbolLoaders.scala

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class SymbolLoaders {
4040
def enterClass(
4141
owner: Symbol, name: PreName, completer: SymbolLoader,
4242
flags: FlagSet = EmptyFlags, scope: Scope = EmptyScope)(implicit ctx: Context): Symbol = {
43-
val cls = ctx.newClassSymbol(owner, name.toTypeName, flags, completer, assocFile = completer.sourceFileOrNull)
43+
val cls = ctx.newClassSymbol(owner, name.toTypeName.unmangleClassName.decode, flags, completer, assocFile = completer.sourceFileOrNull)
4444
enterNew(owner, cls, completer, scope)
4545
}
4646

@@ -50,7 +50,7 @@ class SymbolLoaders {
5050
owner: Symbol, name: PreName, completer: SymbolLoader,
5151
modFlags: FlagSet = EmptyFlags, clsFlags: FlagSet = EmptyFlags, scope: Scope = EmptyScope)(implicit ctx: Context): Symbol = {
5252
val module = ctx.newModuleSymbol(
53-
owner, name.toTermName, modFlags, clsFlags,
53+
owner, name.toTermName.decode, modFlags, clsFlags,
5454
(module, _) => completer.proxy withDecls newScope withSourceModule (_ => module),
5555
assocFile = completer.sourceFileOrNull)
5656
enterNew(owner, module, completer, scope)
@@ -166,13 +166,7 @@ class SymbolLoaders {
166166
override def lookupEntry(name: Name)(implicit ctx: Context): ScopeEntry = {
167167
val mangled = name.mangled
168168
val e = super.lookupEntry(mangled)
169-
if (e != null) {
170-
// Eagerly update symbol's name to undecoded name to avpid the name
171-
// spearding to types.
172-
if (name.toSimpleName != mangled && e.sym.initialDenot.name == mangled)
173-
e.sym.initialDenot.name = name
174-
e
175-
}
169+
if (e != null) e
176170
else if (_sourceModule.initialDenot.name == nme.scala_ && _sourceModule == defn.ScalaPackageVal &&
177171
name.isTypeName && name.isSyntheticFunction)
178172
newScopeEntry(defn.newFunctionNTrait(name.asTypeName))

compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,6 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
436436
roots.find(root => (root.owner eq ctx.owner) && root.name.mangled == mname) match {
437437
case Some(rootd) =>
438438
pickling.println(i"overwriting ${rootd.symbol} # ${rootd.hashCode}")
439-
rootd.name = name
440439
rootd.info = adjustIfModule(
441440
new Completer(ctx.owner, subReader(start, end)) with SymbolLoaders.SecondCompleter)
442441
rootd.flags = flags &~ Touched // allow one more completion

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,6 @@ class Scala2Unpickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClas
460460
//if (isModuleClassRoot) println(s"moduleClassRoot of $moduleClassRoot found at $readIndex, flags = $flags") // !!! DEBUG
461461

462462
def completeRoot(denot: ClassDenotation, completer: LazyType): Symbol = {
463-
denot.name = name
464463
denot.setFlag(flags)
465464
denot.resetFlag(Touched) // allow one more completion
466465
denot.info = completer

0 commit comments

Comments
 (0)