diff options
author | Martin Odersky <odersky@gmail.com> | 2003-02-20 13:15:06 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-02-20 13:15:06 +0000 |
commit | 17bd66e3cf7734ccf1ccd3a0adb987feb880d325 (patch) | |
tree | 52c57891aac018ce89643e41dd0dd05170ae42ab /sources/scalac/transformer/LambdaLiftPhase.java | |
parent | 2fc8c8dc203f00a936aab60dba50c2d7e4ae054b (diff) | |
download | scala-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.java | 6 |
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); } |