diff options
author | Martin Odersky <odersky@gmail.com> | 2003-03-03 17:41:08 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-03-03 17:41:08 +0000 |
commit | fe9d7cc9ec4e55d42a09b149d60d6cf2f8be09af (patch) | |
tree | b75e907e87f3448b01ca3ec2f7af7cd62d574e0e /sources/scalac/transformer/LambdaLift.java | |
parent | 1d2a33a1c2692407698dd7c4dd7b46703eef2d24 (diff) | |
download | scala-fe9d7cc9ec4e55d42a09b149d60d6cf2f8be09af.tar.gz scala-fe9d7cc9ec4e55d42a09b149d60d6cf2f8be09af.tar.bz2 scala-fe9d7cc9ec4e55d42a09b149d60d6cf2f8be09af.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/transformer/LambdaLift.java')
-rw-r--r-- | sources/scalac/transformer/LambdaLift.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/sources/scalac/transformer/LambdaLift.java b/sources/scalac/transformer/LambdaLift.java index 3eeb6d15b5..6e893c835a 100644 --- a/sources/scalac/transformer/LambdaLift.java +++ b/sources/scalac/transformer/LambdaLift.java @@ -207,13 +207,19 @@ public class LambdaLift extends OwnerTransformer } return super.transform(tree); - case TypeDef(int mods, Name name, TypeDef[] tparams, Tree rhs): + case TypeDef(int mods, Name name, Tree rhs): // ignore type definition as owner. // reason: it might be in a refinement // todo: handle type parameters? return copy.TypeDef( tree, mods, name, - transform(tparams, currentOwner), + transform(rhs, currentOwner)); + + case ValDef(int mods, Name name, Tree tpe, Tree rhs): + // ignore value definition as owner. + // reason: it might be in a refinement + return copy.ValDef( + tree, mods, name, transform(tpe), transform(rhs, currentOwner)); case Ident(Name name): @@ -354,20 +360,19 @@ public class LambdaLift extends OwnerTransformer transform(rhs, sym)); } - case TypeDef(int mods, Name name, TypeDef[] tparams, Tree rhs): + case TypeDef(int mods, Name name, Tree rhs): // ignore type definition as owner. // reason: it might be in a refinement // todo: handle type parameters? return copy.TypeDef( tree, mods, name, - transform(tparams, currentOwner), transform(rhs, currentOwner)); case ValDef(int mods, Name name, Tree tpe, Tree rhs): Symbol sym = tree.symbol(); Name name1 = sym.name; Tree tpe1 = transform(tpe); - Tree rhs1 = transform(rhs, sym); + Tree rhs1 = transform(rhs, currentOwner); if ((sym.flags & CAPTURED) != 0) { assert sym.isLocal(); Type unboxedType = sym.typeAt(descr.nextPhase); |