summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/LambdaLiftPhase.java
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-02-20 13:15:06 +0000
committerMartin Odersky <odersky@gmail.com>2003-02-20 13:15:06 +0000
commit17bd66e3cf7734ccf1ccd3a0adb987feb880d325 (patch)
tree52c57891aac018ce89643e41dd0dd05170ae42ab /sources/scalac/transformer/LambdaLiftPhase.java
parent2fc8c8dc203f00a936aab60dba50c2d7e4ae054b (diff)
downloadscala-17bd66e3cf7734ccf1ccd3a0adb987feb880d325.tar.gz
scala-17bd66e3cf7734ccf1ccd3a0adb987feb880d325.tar.bz2
scala-17bd66e3cf7734ccf1ccd3a0adb987feb880d325.zip
*** empty log message ***
Diffstat (limited to 'sources/scalac/transformer/LambdaLiftPhase.java')
-rw-r--r--sources/scalac/transformer/LambdaLiftPhase.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/sources/scalac/transformer/LambdaLiftPhase.java b/sources/scalac/transformer/LambdaLiftPhase.java
index d3ca99b43d..0bfc7f6812 100644
--- a/sources/scalac/transformer/LambdaLiftPhase.java
+++ b/sources/scalac/transformer/LambdaLiftPhase.java
@@ -43,7 +43,8 @@ public class LambdaLiftPhase extends PhaseDescriptor implements Kinds, Modifiers
}
public Type transformInfo(Symbol sym, Type tp) {
- Type tp1 = transform(tp, sym.owner());
+ Type tp1 = tp;
+ if (sym != Symbol.NONE) tp1 = transform(tp, sym.owner());
if ((sym.flags & Modifiers.CAPTURED) != 0) return refType(tp1);
else return tp1;
}
@@ -74,6 +75,7 @@ public class LambdaLiftPhase extends PhaseDescriptor implements Kinds, Modifiers
System.arraycopy(map(targs), 0, targs1, 0, targs.length);
while (i < tparams.length) {
targs1[i] = proxy(tparams[i], owner).type();
+ i++;
}
return Type.TypeRef(pre, sym, targs1);
}
@@ -111,7 +113,9 @@ public class LambdaLiftPhase extends PhaseDescriptor implements Kinds, Modifiers
if (ownerparams[i].name == fv.name)
return ownerparams[i];
}
+ assert o.owner() != o;
o = o.owner();
+
}
throw new ApplicationError("proxy " + fv + " in " + owner);
}