diff --git a/compiler/testData/codegen/boxWithJava/samAdapters/typeParameterOfClass.java b/compiler/testData/codegen/boxWithJava/samAdapters/typeParameterOfClass.java new file mode 100644 index 00000000000..b01de318b51 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/samAdapters/typeParameterOfClass.java @@ -0,0 +1,7 @@ +import java.util.*; + +class WeirdComparator { + public T max(Comparator comparator, T value1, T value2) { + return comparator.compare(value1, value2) > 0 ? value1 : value2; + } +} diff --git a/compiler/testData/codegen/boxWithJava/samAdapters/typeParameterOfClass.kt b/compiler/testData/codegen/boxWithJava/samAdapters/typeParameterOfClass.kt new file mode 100644 index 00000000000..04b17d6395c --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/samAdapters/typeParameterOfClass.kt @@ -0,0 +1,6 @@ +fun box(): String { + val wc = WeirdComparator() + val result = wc.max({ a, b -> a.length - b.length }, "java", "kotlin") + if (result != "kotlin") return "Wrong: $result" + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/TypeParameterOfClass.java b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/TypeParameterOfClass.java new file mode 100644 index 00000000000..f66f14c7648 --- /dev/null +++ b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/TypeParameterOfClass.java @@ -0,0 +1,8 @@ +package test; + +import java.util.*; + +public class TypeParameterOfClass { + public void foo(Comparator comparator) { + } +} diff --git a/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/TypeParameterOfClass.txt b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/TypeParameterOfClass.txt new file mode 100644 index 00000000000..71381c70949 --- /dev/null +++ b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/TypeParameterOfClass.txt @@ -0,0 +1,7 @@ +package test + +public open class TypeParameterOfClass : java.lang.Object { + public constructor TypeParameterOfClass() + public open /*synthesized*/ fun foo(/*0*/ p0 : ((T?, T?) -> jet.Int)?) : jet.Unit + public open fun foo(/*0*/ p0 : java.util.Comparator?) : jet.Unit +} diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java index 72597a9bc65..efde4beef36 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java @@ -137,6 +137,11 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege doTestWithJava("compiler/testData/codegen/boxWithJava/samAdapters/simplest.kt"); } + @TestMetadata("typeParameterOfClass.kt") + public void testTypeParameterOfClass() throws Exception { + doTestWithJava("compiler/testData/codegen/boxWithJava/samAdapters/typeParameterOfClass.kt"); + } + } @TestMetadata("compiler/testData/codegen/boxWithJava/staticFun") diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java index 4760815c251..64beeb1fc1c 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java @@ -1239,6 +1239,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest { doTestCompiledJava("compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/SeveralSamParameters.java"); } + @TestMetadata("TypeParameterOfClass.java") + public void testTypeParameterOfClass() throws Exception { + doTestCompiledJava("compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/TypeParameterOfClass.java"); + } + } public static Test innerSuite() {