diff options
author | Martin Odersky <odersky@gmail.com> | 2013-04-05 16:54:10 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-04-05 16:54:40 +0200 |
commit | 4ce196d8152f75163edb362fcd21fb37631b7fde (patch) | |
tree | b1bfe19ab22935474b0be5939d61e93c8e86719a /src/dotty/tools/dotc/core/pickling/ClassfileParser.scala | |
parent | 859840dd0662a12fbc1ba470438eca779b08ed89 (diff) | |
download | dotty-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/ClassfileParser.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/ClassfileParser.scala | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala index 4981a6f4e..ac0e86110 100644 --- a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala +++ b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala @@ -684,7 +684,7 @@ class ClassfileParser( innerClasses.get(externalName) match { case Some(entry) => - val outerName = entry.outerName.stripModuleSuffix + val outerName = entry.outerName.stripModuleClassSuffix val owner = classSymbol(outerName) val result = cctx.atPhaseNotLaterThanTyper { implicit ctx => getMember(owner, innerName.toTypeName) @@ -808,7 +808,7 @@ class ClassfileParser( val start = starts(index) if (in.buf(start).toInt != CONSTANT_CLASS) errorBadTag(start) val name = getExternalName(in.getChar(start + 1)) - if (name.isModuleName) c = cctx.requiredModule(name.stripModuleSuffix.asTermName) + if (name.isModuleClassName) c = cctx.requiredModule(name.stripModuleClassSuffix.asTermName) else c = classNameToSymbol(name) values(index) = c } |