Skip to content

Commit 4e1d3d4

Browse files
authored
Merge pull request #6111 from dotty-staging/fix-6109
Fix #6109: implement FunctionX.curried
2 parents e3bc344 + 1078b34 commit 4e1d3d4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+90
-867
lines changed

compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1176,9 +1176,9 @@ class DottyBackendInterface(outputDirectory: AbstractFile, val superCallsMap: Ma
11761176
else {
11771177
val arity = field.meth.tpe.widenDealias.paramTypes.size - _1.size
11781178
val returnsUnit = field.meth.tpe.widenDealias.resultType.classSymbol == UnitClass
1179-
if (returnsUnit)
1180-
ctx.requiredClass(("dotty.runtime.function.JProcedure" + arity))
1181-
else ctx.requiredClass(("dotty.runtime.function.JFunction" + arity))
1179+
if (returnsUnit) ctx.requiredClass(("dotty.runtime.function.JProcedure" + arity))
1180+
else if (arity <= 2) ctx.requiredClass(("dotty.runtime.function.JFunction" + arity))
1181+
else ctx.requiredClass(("scala.Function" + arity))
11821182
}
11831183
}
11841184
}

library/src/dotty/runtime/function/JFunction.java

Lines changed: 0 additions & 233 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction0.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
@FunctionalInterface
99
public interface JFunction0<R> extends scala.Function0<R>, java.io.Serializable {
10-
default void $init$() {
11-
};
1210
default void apply$mcV$sp() {
1311
apply();
1412
}

library/src/dotty/runtime/function/JFunction1.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
@FunctionalInterface
99
public interface JFunction1<T1, R> extends scala.Function1<T1, R>, java.io.Serializable {
10-
default void $init$() {
11-
};
1210

1311
@Override
1412
@SuppressWarnings("unchecked")
@@ -213,7 +211,7 @@ default <A> scala.Function1<A, R> compose(scala.Function1<A, T1> g) {
213211
default scala.Function1 compose$mcDD$sp(scala.Function1 g) {
214212
return compose(g);
215213
}
216-
214+
217215
@SuppressWarnings("unchecked")
218216
default scala.Function1 andThen$mcVI$sp(scala.Function1 g) {
219217
return andThen(g);

library/src/dotty/runtime/function/JFunction10.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction11.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction12.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction13.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction14.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction15.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction16.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction17.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction18.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction19.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction2.java

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,6 @@
99

1010
@FunctionalInterface
1111
public interface JFunction2<T1, T2, R> extends scala.Function2<T1, T2, R>, java.io.Serializable {
12-
default void $init$() {
13-
};
14-
15-
@SuppressWarnings("unchecked")
16-
default scala.Function1<T1, scala.Function1<T2, R>> curried() {
17-
return x1 -> x2 -> apply(x1, x2);
18-
}
19-
20-
@SuppressWarnings("unchecked")
21-
default scala.Function1<scala.Tuple2<T1, T2>, R> tupled() {
22-
return x0$1 -> {
23-
if (x0$1 == null) {
24-
throw new MatchError(x0$1);
25-
}
26-
T1 x1 = x0$1._1();
27-
T2 x2 = x0$1._2();
28-
R r = this.apply(x1, x2);
29-
return r;
30-
}
31-
;
32-
}
33-
3412
@SuppressWarnings("unchecked")
3513
default void apply$mcVII$sp(int v1, int v2) {
3614
apply((T1) ((Integer) v1), (T2) ((Integer) v2));
@@ -247,7 +225,7 @@ default scala.Function1<scala.Tuple2<T1, T2>, R> tupled() {
247225
default double apply$mcDDD$sp(double v1, double v2) {
248226
return scala.runtime.BoxesRunTime.unboxToDouble(apply((T1) ((Double) v1), (T2) ((Double) v2)));
249227
}
250-
228+
251229
@SuppressWarnings("unchecked")
252230
default scala.Function1 curried$mcVII$sp() {
253231
return curried();
@@ -464,7 +442,7 @@ default scala.Function1<scala.Tuple2<T1, T2>, R> tupled() {
464442
default scala.Function1 curried$mcDDD$sp() {
465443
return curried();
466444
}
467-
445+
468446
@SuppressWarnings("unchecked")
469447
default scala.Function1 tupled$mcVII$sp() {
470448
return tupled();

library/src/dotty/runtime/function/JFunction20.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

library/src/dotty/runtime/function/JFunction21.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)