diff options
author | paltherr <paltherr@epfl.ch> | 2003-09-30 16:32:08 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-09-30 16:32:08 +0000 |
commit | 26f6e93446e211a7c4bdc97871128d7877aecea4 (patch) | |
tree | a17ab09685218a61997f532102e43f169a0f2ce8 | |
parent | e2aba2c2ad8465d2baf0f599c0dad958c2094c42 (diff) | |
download | scala-26f6e93446e211a7c4bdc97871128d7877aecea4.tar.gz scala-26f6e93446e211a7c4bdc97871128d7877aecea4.tar.bz2 scala-26f6e93446e211a7c4bdc97871128d7877aecea4.zip |
- Modified method proxy to compare enclFun of o...
- Modified method proxy to compare enclFun of owners instead of owners
directly. This solves bug 167.
-rw-r--r-- | sources/scalac/transformer/LambdaLiftPhase.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sources/scalac/transformer/LambdaLiftPhase.java b/sources/scalac/transformer/LambdaLiftPhase.java index eb3bb40d04..202508aef3 100644 --- a/sources/scalac/transformer/LambdaLiftPhase.java +++ b/sources/scalac/transformer/LambdaLiftPhase.java @@ -126,15 +126,15 @@ public class LambdaLiftPhase extends Phase implements Kinds, Modifiers { */ Symbol proxy(Symbol fv, Symbol owner) { if (global.debug) - global.log("proxy " + fv + " of " + fv.owner() + " in " + LambdaLift.asFunction(owner)); + global.log("proxy " + fv + " of " + fv.owner() + " in " + LambdaLift.enclFun(owner)); Symbol o = owner; while (o.kind != NONE) { if (global.debug) - global.log("looking in " + LambdaLift.asFunction(o) + " " + + global.log("looking in " + LambdaLift.enclFun(o) + " " + ArrayApply.toString(o.typeParams())); - Symbol fowner = LambdaLift.asFunction(o); + Symbol fowner = LambdaLift.enclFun(o); if (fowner.isMethod()) { - if (fv.owner() == fowner) return fv; + if (LambdaLift.enclFun(fv.owner()) == fowner) return fv; Type ft = (fowner.isUpdatedAt(this)) ? fowner.nextType() : fowner.type(); Symbol[] ownerparams = fv.isType() ? ft.typeParams() |