summaryrefslogtreecommitdiff
path: root/sources/scalac/typechecker/DeSugarize.java
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-03-07 12:52:58 +0000
committerschinz <schinz@epfl.ch>2003-03-07 12:52:58 +0000
commit2666bf05158dd960700a7fa6e3ca2b87609ab4a1 (patch)
tree0d2baf958e3e33f473a7acf62ba342d253015611 /sources/scalac/typechecker/DeSugarize.java
parentefeadee8bb947d69412237118b273f64c5d04444 (diff)
downloadscala-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>"
Diffstat (limited to 'sources/scalac/typechecker/DeSugarize.java')
-rw-r--r--sources/scalac/typechecker/DeSugarize.java5
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: