summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-11-26 12:42:16 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-11-26 12:42:16 +0000
commit794324a73f4e143835bd164978a8517482a4b672 (patch)
tree8b1edc65ed6f169051fbf1899d7b82f4adba2691
parent088c19a13c799d577736eb37da3dcd9926d59f9b (diff)
downloadscala-794324a73f4e143835bd164978a8517482a4b672.tar.gz
scala-794324a73f4e143835bd164978a8517482a4b672.tar.bz2
scala-794324a73f4e143835bd164978a8517482a4b672.zip
Adapt nested objects properly.
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala9
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 {