From fa013f0bbf2ca20b20f550fb11fedff029fca19d Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Fri, 16 Dec 2016 15:01:19 +0300 Subject: [PATCH] Add test on inference with SAM adapter #KT-12144 Fixed --- .../j+k/sam/typeInferenceOnSamAdapters.kt | 19 +++++++++++++++++++ .../j+k/sam/typeInferenceOnSamAdapters.txt | 19 +++++++++++++++++++ .../checkers/DiagnosticsTestGenerated.java | 6 ++++++ 3 files changed, 44 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.kt create mode 100644 compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.txt diff --git a/compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.kt b/compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.kt new file mode 100644 index 00000000000..536868a44d5 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.kt @@ -0,0 +1,19 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// FILE: A.java +public class A { + public void foo(K key, BiFunction remappingFunction) { + + } +} + +// FILE: BiFunction.java +public interface BiFunction { + R apply(T t, U u); +} + +// FILE: main.kt +fun main() { + val a = A() + a.foo(2, BiFunction { k, v -> null }) + a.foo(2) { k, v -> null } // See KT-12144 +} diff --git a/compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.txt b/compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.txt new file mode 100644 index 00000000000..d07ec525394 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.txt @@ -0,0 +1,19 @@ +package + +public /*synthesized*/ fun BiFunction(/*0*/ function: (t: T!, u: U!) -> R!): BiFunction +public fun main(): kotlin.Unit + +public open class A { + public constructor A() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open fun foo(/*0*/ key: K!, /*1*/ remappingFunction: BiFunction!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public interface BiFunction { + public abstract fun apply(/*0*/ t: T!, /*1*/ u: U!): R! + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index d2c37dc7239..ea09d61a166 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -12185,6 +12185,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/sam/enhancedSamConstructor.kt"); doTest(fileName); } + + @TestMetadata("typeInferenceOnSamAdapters.kt") + public void testTypeInferenceOnSamAdapters() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/sam/typeInferenceOnSamAdapters.kt"); + doTest(fileName); + } } @TestMetadata("compiler/testData/diagnostics/tests/j+k/samByProjectedType")