summaryrefslogtreecommitdiff
path: root/sources/scalac
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-08-02 23:00:35 +0000
committerpaltherr <paltherr@epfl.ch>2003-08-02 23:00:35 +0000
commite41aa28a336a5d6ac3e838780b2b70753c00eb3c (patch)
treea1f34601b08bbbeea58a92f836cc03fcd69899ed /sources/scalac
parent5a67796e029043e8263c6f10d5c1e74ce5909283 (diff)
downloadscala-e41aa28a336a5d6ac3e838780b2b70753c00eb3c.tar.gz
scala-e41aa28a336a5d6ac3e838780b2b70753c00eb3c.tar.bz2
scala-e41aa28a336a5d6ac3e838780b2b70753c00eb3c.zip
- Added trabsformation of <local>.this into <ow...
- Added trabsformation of <local>.this into <owner>.this
Diffstat (limited to 'sources/scalac')
-rw-r--r--sources/scalac/transformer/LambdaLiftPhase.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/sources/scalac/transformer/LambdaLiftPhase.java b/sources/scalac/transformer/LambdaLiftPhase.java
index 92ac46cedb..3406fb2236 100644
--- a/sources/scalac/transformer/LambdaLiftPhase.java
+++ b/sources/scalac/transformer/LambdaLiftPhase.java
@@ -85,6 +85,15 @@ public class LambdaLiftPhase extends PhaseDescriptor implements Kinds, Modifiers
public Type apply(Type tp) {
switch (tp) {
case TypeRef(Type pre, Symbol sym, Type[] targs):
+ if (sym.kind == CLASS) {
+ switch (pre) {
+ case ThisType(Symbol s):
+ if (s == Symbol.NONE) {
+ pre = sym.owner().enclClass().thisType();
+ tp = Type.TypeRef(pre, sym, targs);
+ }
+ }
+ }
switch (pre) {
case ThisType(_):
if (sym.kind == CLASS &&