summaryrefslogtreecommitdiff
path: root/sources/scalac
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-03-07 13:29:46 +0000
committerschinz <schinz@epfl.ch>2003-03-07 13:29:46 +0000
commita275c7c9fa889508ce0630fc445a8f1bb2db3aff (patch)
tree060bcc3687a0e799bf0e4b9e6e9db9b7cb3bb245 /sources/scalac
parent6a6d53bb15506187dddc5d43d3b59199eb6bbe17 (diff)
downloadscala-a275c7c9fa889508ce0630fc445a8f1bb2db3aff.tar.gz
scala-a275c7c9fa889508ce0630fc445a8f1bb2db3aff.tar.bz2
scala-a275c7c9fa889508ce0630fc445a8f1bb2db3aff.zip
- when generating classes for "def" parameters,...
- when generating classes for "def" parameters, generate with "extends Object with Function0" instead of "extends Function0"
Diffstat (limited to 'sources/scalac')
-rw-r--r--sources/scalac/ast/TreeGen.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/sources/scalac/ast/TreeGen.java b/sources/scalac/ast/TreeGen.java
index 6853b924a5..97041847f9 100644
--- a/sources/scalac/ast/TreeGen.java
+++ b/sources/scalac/ast/TreeGen.java
@@ -502,7 +502,7 @@ public class TreeGen implements Kinds, Modifiers {
/** Build the expansion of (() => expr)
* This is:
- * { class $clazz() extends scala.Function0 { def apply() = expr } ; new $clazz() }
+ * { class $anon() extends scala.Function0 { def apply() = expr } ; new $anon() }
*/
public Tree mkUnitFunction(Tree expr, Type tp, Symbol owner) {
int pos = expr.pos;
@@ -510,7 +510,8 @@ public class TreeGen implements Kinds, Modifiers {
ClassSymbol clazz = new ClassSymbol(
pos, Names.ANON_CLASS_NAME.toTypeName(), owner, 0);
- clazz.setInfo(Type.compoundType(new Type[]{f0t}, new Scope(), clazz));
+ clazz.setInfo(Type.compoundType(new Type[]{definitions.OBJECT_TYPE, f0t},
+ new Scope(), clazz));
clazz.constructor().setInfo(
Type.MethodType(Symbol.EMPTY_ARRAY, clazz.typeConstructor()));