aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/pickling/UnPickler.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-04-05 16:54:10 +0200
committerMartin Odersky <odersky@gmail.com>2013-04-05 16:54:40 +0200
commit4ce196d8152f75163edb362fcd21fb37631b7fde (patch)
treeb1bfe19ab22935474b0be5939d61e93c8e86719a /src/dotty/tools/dotc/core/pickling/UnPickler.scala
parent859840dd0662a12fbc1ba470438eca779b08ed89 (diff)
downloaddotty-4ce196d8152f75163edb362fcd21fb37631b7fde.tar.gz
dotty-4ce196d8152f75163edb362fcd21fb37631b7fde.tar.bz2
dotty-4ce196d8152f75163edb362fcd21fb37631b7fde.zip
Made module class names end in '$'.
If module classes have the same names as their companion classes there is the latent trap that TypeRefs refer to one or the other. To avoid cross-talk, module classes need to have a different name. Also, some fixes to baseType, isSubClass in SymDenotations.
Diffstat (limited to 'src/dotty/tools/dotc/core/pickling/UnPickler.scala')
-rw-r--r--src/dotty/tools/dotc/core/pickling/UnPickler.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/UnPickler.scala b/src/dotty/tools/dotc/core/pickling/UnPickler.scala
index c47b3b2d4..bed88e1dd 100644
--- a/src/dotty/tools/dotc/core/pickling/UnPickler.scala
+++ b/src/dotty/tools/dotc/core/pickling/UnPickler.scala
@@ -412,9 +412,10 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot:
// symbols that were pickled with Pickler.writeSymInfo
val nameref = readNat()
- val name = at(nameref, readName)
+ val name0 = at(nameref, readName)
val owner = readSymbolRef()
- val flags = unpickleScalaFlags(readLongNat(), name.isTypeName)
+ val flags = unpickleScalaFlags(readLongNat(), name0.isTypeName)
+ val name = name0.adjustIfModuleClass(flags)
def isClassRoot = (name == classRoot.name) && (owner == classRoot.owner) && !(flags is ModuleClass)
def isModuleClassRoot = (name == moduleClassRoot.name) && (owner == moduleClassRoot.owner) && (flags is Module)