summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-09-30 16:32:08 +0000
committerpaltherr <paltherr@epfl.ch>2003-09-30 16:32:08 +0000
commit26f6e93446e211a7c4bdc97871128d7877aecea4 (patch)
treea17ab09685218a61997f532102e43f169a0f2ce8 /sources
parente2aba2c2ad8465d2baf0f599c0dad958c2094c42 (diff)
downloadscala-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.
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/transformer/LambdaLiftPhase.java8
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()