J2K: Convert Java8 lambdas properly
#KT-7149 Fixed
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import kotlin.jvm.functions.Function0;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import kotlin.jvm.functions.Function2;
|
||||
|
||||
public class Java8Class {
|
||||
public void foo0(Function0<String> r) {
|
||||
}
|
||||
|
||||
public void foo1(Function1<Integer, String> r) {
|
||||
}
|
||||
|
||||
public void foo2(Function2<Integer, Integer, String> r) {
|
||||
}
|
||||
|
||||
public void helper() {
|
||||
}
|
||||
|
||||
public void foo() {
|
||||
foo0(() -> "42");
|
||||
foo0(() -> { return "42"; });
|
||||
foo0(() -> {
|
||||
helper();
|
||||
return "42";
|
||||
});
|
||||
|
||||
foo1((i) -> "42");
|
||||
foo1(i -> { return "42"; });
|
||||
foo1((Integer i) -> {
|
||||
helper();
|
||||
if (i > 1) {
|
||||
return "42";
|
||||
}
|
||||
|
||||
return "43";
|
||||
});
|
||||
|
||||
foo2((i, j) -> "42");
|
||||
foo2((Integer i, Integer j) -> {
|
||||
helper();
|
||||
return "42";
|
||||
});
|
||||
|
||||
Function2<Integer, Integer, String> f = (Integer i, Integer k) -> {
|
||||
helper();
|
||||
if (i > 1) {
|
||||
return "42";
|
||||
}
|
||||
|
||||
return "43";
|
||||
};
|
||||
|
||||
Function2<Integer, Integer, String> f1 = (Integer i1, Integer k1) -> {
|
||||
Function2<Integer, Integer, String> f2 = (Integer i2, Integer k2) -> {
|
||||
helper();
|
||||
if (i2 > 1) {
|
||||
return "42";
|
||||
}
|
||||
|
||||
return "43";
|
||||
};
|
||||
if (i1 > 1) {
|
||||
return f.invoke(i1, k1);
|
||||
}
|
||||
return f.invoke(i1, k1);
|
||||
};
|
||||
|
||||
Runnable runnable = () -> { };
|
||||
|
||||
foo1((Integer i) -> {
|
||||
if (i > 1) {
|
||||
return "42";
|
||||
}
|
||||
|
||||
foo0(() -> {
|
||||
if (true) {
|
||||
return "42";
|
||||
}
|
||||
return "43";
|
||||
});
|
||||
|
||||
return "43";
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user