summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/LambdaLift.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-07-10 15:34:13 +0000
committerpaltherr <paltherr@epfl.ch>2003-07-10 15:34:13 +0000
commit3b96193f16e4392e36fdc32e11d28304d46923ff (patch)
treeba5cce1c3339ed3215259b903309ce247e6a53b5 /sources/scalac/transformer/LambdaLift.java
parent7a4d11c99780a6de513cd818f41b923df0502a6c (diff)
downloadscala-3b96193f16e4392e36fdc32e11d28304d46923ff.tar.gz
scala-3b96193f16e4392e36fdc32e11d28304d46923ff.tar.bz2
scala-3b96193f16e4392e36fdc32e11d28304d46923ff.zip
- Added method Symbol.cloneSymbol(Symbol)
Diffstat (limited to 'sources/scalac/transformer/LambdaLift.java')
-rw-r--r--sources/scalac/transformer/LambdaLift.java6
1 files changed, 2 insertions, 4 deletions
diff --git a/sources/scalac/transformer/LambdaLift.java b/sources/scalac/transformer/LambdaLift.java
index 201c2b6152..2b8a05135d 100644
--- a/sources/scalac/transformer/LambdaLift.java
+++ b/sources/scalac/transformer/LambdaLift.java
@@ -436,10 +436,9 @@ public class LambdaLift extends OwnerTransformer
Symbol[] freevars = get(free.ftvs, owner).toArray();
Symbol[] params = new Symbol[freevars.length];
for (int i = 0; i < params.length; i++) {
- params[i] = freevars[i].cloneSymbol();
+ params[i] = freevars[i].cloneSymbol(owner);
params[i].pos = owner.pos;
params[i].flags = PARAM | SYNTHETIC;
- params[i].setOwner(owner);
}
for (int i = 0; i < params.length; i++)
params[i].setInfo(freevars[i].info().subst(freevars, params));
@@ -450,11 +449,10 @@ public class LambdaLift extends OwnerTransformer
Symbol[] freevars = get(free.fvs, owner).toArray();
Symbol[] params = new Symbol[freevars.length];
for (int i = 0; i < params.length; i++) {
- params[i] = freevars[i].cloneSymbol();
+ params[i] = freevars[i].cloneSymbol(owner);
params[i].pos = owner.pos;
params[i].flags &= CAPTURED;
params[i].flags |= PARAM | SYNTHETIC;
- params[i].setOwner(owner);
params[i].setInfo(freevars[i].type());
}
return params;