summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-01-08 12:47:11 +0000
committerpaltherr <paltherr@epfl.ch>2004-01-08 12:47:11 +0000
commit3fcadde1cd70c82969cbcd79bcb3a7fd1ae8cdba (patch)
tree7694f59f7b89c08c1730b36859b9b257540a2b57
parentfd033d227b150d5bb231e7b28f36414335daff53 (diff)
downloadscala-3fcadde1cd70c82969cbcd79bcb3a7fd1ae8cdba.tar.gz
scala-3fcadde1cd70c82969cbcd79bcb3a7fd1ae8cdba.tar.bz2
scala-3fcadde1cd70c82969cbcd79bcb3a7fd1ae8cdba.zip
- Added a special case to convert thistype of m...
- Added a special case to convert thistype of module classes into single types
-rw-r--r--sources/scalac/transformer/ExplicitOuterClassesPhase.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/sources/scalac/transformer/ExplicitOuterClassesPhase.java b/sources/scalac/transformer/ExplicitOuterClassesPhase.java
index f047b15b45..1d000e5e55 100644
--- a/sources/scalac/transformer/ExplicitOuterClassesPhase.java
+++ b/sources/scalac/transformer/ExplicitOuterClassesPhase.java
@@ -319,6 +319,10 @@ public class ExplicitOuterClassesPhase extends Phase {
if (clasz == Symbol.NONE) return type;
if (clasz == context.clasz) return type;
if (clasz.isPackage()) return Type.localThisType;
+ if (clasz.isModuleClass()) {
+ Type prefix = clasz.owner().thisType();
+ return Type.singleType(apply(prefix), clasz.module());
+ }
for (int i = 0; i < context.outers.length; i++)
if (clasz == context.outers[i].clasz)
return context.getTypeLink(i);