From 70d78cbfc802ccc49d5d324755865ff07985dfef Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 7 Sep 2003 17:54:44 +0000 Subject: *** empty log message *** --- sources/scalac/transformer/LambdaLift.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'sources/scalac/transformer/LambdaLift.java') 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; -- cgit v1.2.3