diff options
author | Martin Odersky <odersky@gmail.com> | 2003-09-07 17:54:44 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-09-07 17:54:44 +0000 |
commit | 70d78cbfc802ccc49d5d324755865ff07985dfef (patch) | |
tree | bc524a99cc8d3f6a5a722a60d98aacbd06f9c92b /sources/scalac/transformer/LambdaLift.java | |
parent | 43c5c82eb9ee00e7d87042a1195d854f4ac79df3 (diff) | |
download | scala-70d78cbfc802ccc49d5d324755865ff07985dfef.tar.gz scala-70d78cbfc802ccc49d5d324755865ff07985dfef.tar.bz2 scala-70d78cbfc802ccc49d5d324755865ff07985dfef.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/transformer/LambdaLift.java')
-rw-r--r-- | sources/scalac/transformer/LambdaLift.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sources/scalac/transformer/LambdaLift.java b/sources/scalac/transformer/LambdaLift.java index 67b396ec2e..9e3a497c80 100644 --- a/sources/scalac/transformer/LambdaLift.java +++ b/sources/scalac/transformer/LambdaLift.java @@ -444,9 +444,13 @@ public class LambdaLift extends OwnerTransformer (sym.kind == TYPE || (sym.kind == VAL && !sym.isMethod()))) { sym = descr.proxy(sym, currentOwner); } - Tree tree1 = copy.Ident(tree, sym).setType( - sym.nextType()); - if (name != sym.name) ((Ident)tree1).name = sym.name; + Tree tree1 = (sym.owner().kind == CLASS) + ? gen.mkRef(tree.pos, sym) + : copy.Ident(tree, sym).setType(sym.nextType()); + if (name != sym.name) { + if (tree1 instanceof Ident) ((Ident)tree1).name = sym.name; + else ((Select)tree1).selector = sym.name; + } if ((sym.flags & CAPTURED) != 0) return gen.Select(tree1, Names.elem); else return tree1; |