diff options
author | paltherr <paltherr@epfl.ch> | 2003-08-02 23:00:35 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-08-02 23:00:35 +0000 |
commit | e41aa28a336a5d6ac3e838780b2b70753c00eb3c (patch) | |
tree | a1f34601b08bbbeea58a92f836cc03fcd69899ed | |
parent | 5a67796e029043e8263c6f10d5c1e74ce5909283 (diff) | |
download | scala-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
-rw-r--r-- | sources/scalac/transformer/LambdaLiftPhase.java | 9 |
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 && |