summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/LambdaLift.java
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-03-03 17:41:08 +0000
committerMartin Odersky <odersky@gmail.com>2003-03-03 17:41:08 +0000
commitfe9d7cc9ec4e55d42a09b149d60d6cf2f8be09af (patch)
treeb75e907e87f3448b01ca3ec2f7af7cd62d574e0e /sources/scalac/transformer/LambdaLift.java
parent1d2a33a1c2692407698dd7c4dd7b46703eef2d24 (diff)
downloadscala-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.java15
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);