Expanded and simplified test for generating bridges in sam conversions.
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
class JavaClass {
|
||||||
|
public interface Super1<T> {
|
||||||
|
Thread call(T t);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Super2<T> {
|
||||||
|
T call(String s);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Sub extends Super1<String>, Super2<Thread> {
|
||||||
|
Thread call(String s);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void samAdapter(Sub sub) {
|
||||||
|
((Super1) sub).call("");
|
||||||
|
((Super2) sub).call("");
|
||||||
|
sub.call("");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
fun box(): String? {
|
||||||
|
var s: String?
|
||||||
|
s = "FAIL for function literal"
|
||||||
|
JavaClass.samAdapter { s = "OK"; null }
|
||||||
|
if (s != "OK") return s
|
||||||
|
|
||||||
|
s = "FAIL for wrapper"
|
||||||
|
val function: (String?) -> Thread? = { s = "OK"; null }
|
||||||
|
JavaClass.samAdapter(function)
|
||||||
|
if (s != "OK") return s
|
||||||
|
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
+2
-1
@@ -1,4 +1,5 @@
|
|||||||
public class kt5912<T> {
|
// KT-5912
|
||||||
|
class JavaClass<T> {
|
||||||
public static interface Action<T> {
|
public static interface Action<T> {
|
||||||
void call(T t);
|
void call(T t);
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
// KT-5912
|
||||||
|
fun box(): String {
|
||||||
|
var s = "Failt"
|
||||||
|
JavaClass<String>().perform("") { s = "OK" }
|
||||||
|
return s
|
||||||
|
}
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
fun box(): String {
|
|
||||||
var s = "Failt"
|
|
||||||
kt5912<String>().perform("") { s = "OK" }
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
+12
-6
@@ -356,6 +356,18 @@ public class BlackBoxAgainstJavaCodegenTestGenerated extends AbstractBlackBoxCod
|
|||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxAgainstJava/sam/adapters"), Pattern.compile("^(.+)\\.kt$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxAgainstJava/sam/adapters"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("bridgesForOverridden.kt")
|
||||||
|
public void testBridgesForOverridden() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverridden.kt");
|
||||||
|
doTestAgainstJava(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("bridgesForOverriddenComplex.kt")
|
||||||
|
public void testBridgesForOverriddenComplex() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt");
|
||||||
|
doTestAgainstJava(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("callAbstractAdapter.kt")
|
@TestMetadata("callAbstractAdapter.kt")
|
||||||
public void testCallAbstractAdapter() throws Exception {
|
public void testCallAbstractAdapter() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/callAbstractAdapter.kt");
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/callAbstractAdapter.kt");
|
||||||
@@ -410,12 +422,6 @@ public class BlackBoxAgainstJavaCodegenTestGenerated extends AbstractBlackBoxCod
|
|||||||
doTestAgainstJava(fileName);
|
doTestAgainstJava(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("kt5912.kt")
|
|
||||||
public void testKt5912() throws Exception {
|
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/kt5912.kt");
|
|
||||||
doTestAgainstJava(fileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nonLiteralAndLiteralRunnable.kt")
|
@TestMetadata("nonLiteralAndLiteralRunnable.kt")
|
||||||
public void testNonLiteralAndLiteralRunnable() throws Exception {
|
public void testNonLiteralAndLiteralRunnable() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralAndLiteralRunnable.kt");
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralAndLiteralRunnable.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user