aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/unpickleScala2
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-03-25 16:14:50 +0100
committerMartin Odersky <odersky@gmail.com>2017-04-11 09:33:10 +0200
commit624b4eb59862644646dec685833c67c64756a8bd (patch)
treefd9b747a48be37b8ad6d32d5b909a1e68d1ca849 /compiler/src/dotty/tools/dotc/core/unpickleScala2
parentf9a9ddb879e9de4730a463f28c8b6602e0e60bbc (diff)
downloaddotty-624b4eb59862644646dec685833c67c64756a8bd.tar.gz
dotty-624b4eb59862644646dec685833c67c64756a8bd.tar.bz2
dotty-624b4eb59862644646dec685833c67c64756a8bd.zip
Semantic SuperAccessor and Initializer names
Diffstat (limited to 'compiler/src/dotty/tools/dotc/core/unpickleScala2')
-rw-r--r--compiler/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala18
1 files changed, 10 insertions, 8 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala b/compiler/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
index 084b8d098..c37d60b41 100644
--- a/compiler/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
+++ b/compiler/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
@@ -420,10 +420,10 @@ class Scala2Unpickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClas
// symbols that were pickled with Pickler.writeSymInfo
val nameref = readNat()
- val name0 = at(nameref, readName)
+ var name = at(nameref, readName)
val owner = readSymbolRef()
- var flags = unpickleScalaFlags(readLongNat(), name0.isTypeName)
+ var flags = unpickleScalaFlags(readLongNat(), name.isTypeName)
if (flags is DefaultParameter) {
// DefaultParameterized flag now on method, not parameter
//assert(flags is Param, s"$name0 in $owner")
@@ -431,12 +431,14 @@ class Scala2Unpickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClas
owner.setFlag(DefaultParameterized)
}
- val name1 = name0.adjustIfModuleClass(flags)
- val name2 = if (name1 == nme.TRAIT_CONSTRUCTOR) nme.CONSTRUCTOR else name1
- val name =
- if (flags is ModuleClass) name2.unmangleClassName
- else if (flags is Method) name2.asTermName.unmangleMethodName
- else name2
+ name = name.adjustIfModuleClass(flags)
+ if (flags is Method) {
+ name =
+ if (name == nme.TRAIT_CONSTRUCTOR) nme.CONSTRUCTOR
+ else name.asTermName.unmangleMethodName
+ }
+ if (flags is ExpandedName) name = name.unmangleExpandedName
+ if (flags is SuperAccessor) name = name.asTermName.unmangleSuperName
def isClassRoot = (name == classRoot.name) && (owner == classRoot.owner) && !(flags is ModuleClass)
def isModuleClassRoot = (name == moduleClassRoot.name) && (owner == moduleClassRoot.owner) && (flags is Module)