diff options
author | paltherr <paltherr@epfl.ch> | 2003-09-06 18:52:22 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-09-06 18:52:22 +0000 |
commit | d107eb40f1372ab1a1b9b26220e55c512d44ecd7 (patch) | |
tree | 8715c93deed809a15d85da6e51864efaa4ff476a /sources/scalac/transformer/LambdaLift.java | |
parent | e2b146bbef7479f8bbd2aed1f461ace30d541899 (diff) | |
download | scala-d107eb40f1372ab1a1b9b26220e55c512d44ecd7.tar.gz scala-d107eb40f1372ab1a1b9b26220e55c512d44ecd7.tar.bz2 scala-d107eb40f1372ab1a1b9b26220e55c512d44ecd7.zip |
- Added TreeGen.mkTypeIdent
- Added assertion in TreeGen.Ident
- Changed LambdaLift to invoke TreeGen.mkTypeIdent/Ident for targs/vargs
- Changed Analyzer to not invoke TreeGen.Ident with class symbol
Diffstat (limited to 'sources/scalac/transformer/LambdaLift.java')
-rw-r--r-- | sources/scalac/transformer/LambdaLift.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sources/scalac/transformer/LambdaLift.java b/sources/scalac/transformer/LambdaLift.java index 5640938030..bf934877ae 100644 --- a/sources/scalac/transformer/LambdaLift.java +++ b/sources/scalac/transformer/LambdaLift.java @@ -426,17 +426,17 @@ public class LambdaLift extends OwnerTransformer switch (fn1) { case TypeApply(Tree fn2, Tree[] targs): fn1 = copy.TypeApply( - fn1, fn2, addFreeArgs(tree.pos, get(free.ftvs, fsym), targs)); + fn1, fn2, addFreeArgs(tree.pos, get(free.ftvs, fsym), targs, true)); break; default: Tree[] targs = addFreeArgs( - tree.pos, get(free.ftvs, fsym), Tree.EMPTY_ARRAY); + tree.pos, get(free.ftvs, fsym), Tree.EMPTY_ARRAY, true); if (targs.length > 0) fn1 = gen.TypeApply(fn1, targs); } Tree[] args1 = transform(args); return copy.Apply( - tree, fn1, addFreeArgs(tree.pos, get(free.fvs, fsym), args1)); + tree, fn1, addFreeArgs(tree.pos, get(free.fvs, fsym), args1, false)); case Ident(Name name): Symbol sym = tree.symbol(); @@ -633,7 +633,7 @@ public class LambdaLift extends OwnerTransformer /** For all variables or type variables in `fvs', * append proxies to argument array `args'. */ - Tree[] addFreeArgs(int pos, SymSet fvs, Tree[] args) { + Tree[] addFreeArgs(int pos, SymSet fvs, Tree[] args, boolean types) { if (fvs != SymSet.EMPTY) { Symbol[] fparams = fvs.toArray(); Tree[] args1 = new Tree[args.length + fparams.length]; @@ -641,7 +641,7 @@ public class LambdaLift extends OwnerTransformer for (int i = 0; i < fparams.length; i++) { Symbol farg = descr.proxy(fparams[i], currentOwner); args1[args.length + i] = - gen.Ident(pos, farg).setType(farg.nextType()); + types ? gen.mkTypeIdent(pos, farg) : gen.Ident(pos, farg); } return args1; } else { |