diff options
author | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2010-11-26 12:42:16 +0000 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2010-11-26 12:42:16 +0000 |
commit | 794324a73f4e143835bd164978a8517482a4b672 (patch) | |
tree | 8b1edc65ed6f169051fbf1899d7b82f4adba2691 | |
parent | 088c19a13c799d577736eb37da3dcd9926d59f9b (diff) | |
download | scala-794324a73f4e143835bd164978a8517482a4b672.tar.gz scala-794324a73f4e143835bd164978a8517482a4b672.tar.bz2 scala-794324a73f4e143835bd164978a8517482a4b672.zip |
Adapt nested objects properly.
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Types.scala | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index 14450c28b7..f7099eb170 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -3790,12 +3790,11 @@ A type's typeSymbol should never be inspected directly. object adaptToNewRunMap extends TypeMap { private def adaptToNewRun(pre: Type, sym: Symbol): Symbol = { if (phase.refChecked) { - sym + sym } else if (sym.isModuleClass) { - if (!sym.owner.isPackageClass) - sym // Nested lazy object - else - adaptToNewRun(pre, sym.sourceModule).moduleClass + val adaptedSym = adaptToNewRun(pre, sym.sourceModule) + // Handle nested objects properly + if (adaptedSym.isLazy) adaptedSym.lazyAccessor else adaptedSym.moduleClass } else if ((pre eq NoPrefix) || (pre eq NoType) || sym.isPackageClass) { sym } else { |