diff options
author | schinz <schinz@epfl.ch> | 2003-03-07 12:52:58 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2003-03-07 12:52:58 +0000 |
commit | 2666bf05158dd960700a7fa6e3ca2b87609ab4a1 (patch) | |
tree | 0d2baf958e3e33f473a7acf62ba342d253015611 | |
parent | efeadee8bb947d69412237118b273f64c5d04444 (diff) | |
download | scala-2666bf05158dd960700a7fa6e3ca2b87609ab4a1.tar.gz scala-2666bf05158dd960700a7fa6e3ca2b87609ab4a1.tar.bz2 scala-2666bf05158dd960700a7fa6e3ca2b87609ab4a1.zip |
- when generating classes for anonymous functio...
- when generating classes for anonymous functions, generate with
"extends Object with Function<n>" instead of "extends Function<n>"
-rw-r--r-- | sources/scalac/typechecker/DeSugarize.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sources/scalac/typechecker/DeSugarize.java b/sources/scalac/typechecker/DeSugarize.java index 1a9677e27e..43e74dbaec 100644 --- a/sources/scalac/typechecker/DeSugarize.java +++ b/sources/scalac/typechecker/DeSugarize.java @@ -182,6 +182,9 @@ public class DeSugarize implements Kinds, Modifiers { for (int i = 0; i < length; i++) argtpes[i] = vparams[i].tpe; argtpes[vparams.length] = restpe; + Tree objConstr = make.Select(tree.pos, + make.Ident(tree.pos, Names.scala), + Names.Object.toConstrName()); Tree constr = make.TypeApply(tree.pos, make.Select(tree.pos, make.Ident(tree.pos, Names.scala), @@ -194,7 +197,7 @@ public class DeSugarize implements Kinds, Modifiers { restpe, body); Tree result = make.New(tree.pos, - make.Template(tree.pos, new Tree[]{constr}, new Tree[]{applyDef})); + make.Template(tree.pos, new Tree[]{objConstr, constr}, new Tree[]{applyDef})); print(tree, "mkfun", result); return result; default: |