diff --git a/compiler/testData/diagnostics/tests/inference/expectedTypeDoubleReceiver.kt b/compiler/testData/diagnostics/tests/inference/expectedTypeDoubleReceiver.kt new file mode 100644 index 00000000000..df910514039 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/expectedTypeDoubleReceiver.kt @@ -0,0 +1,19 @@ +// !LANGUAGE: +ExpectedTypeFromCast + +fun foo(): T = TODO() + +class A { + fun fooA(): T = TODO() +} + +fun id(value: V) = value + +val asA = foo().fooA() as A + +val receiverParenthesized = (foo()).fooA() as A +val no2A = A().fooA().fooA() as A + +val correct1 = A().fooA() as A +val correct2 = foo().fooA() as A +val correct3 = A().fooA().fooA() as A + diff --git a/compiler/testData/diagnostics/tests/inference/expectedTypeDoubleReceiver.txt b/compiler/testData/diagnostics/tests/inference/expectedTypeDoubleReceiver.txt new file mode 100644 index 00000000000..5b81976c964 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/expectedTypeDoubleReceiver.txt @@ -0,0 +1,18 @@ +package + +public val asA: A +public val correct1: A +public val correct2: A +public val correct3: A +public val no2A: A +public val receiverParenthesized: A +public fun foo(): T +public fun id(/*0*/ value: V): V + +public final class A { + public constructor A() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final fun fooA(): T + 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 67d0e9cbca2..2cf2c814a3a 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -10228,6 +10228,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("expectedTypeDoubleReceiver.kt") + public void testExpectedTypeDoubleReceiver() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/expectedTypeDoubleReceiver.kt"); + doTest(fileName); + } + @TestMetadata("expectedTypeFromCast.kt") public void testExpectedTypeFromCast() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/expectedTypeFromCast.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index 7be96c12339..c10f475da25 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -10228,6 +10228,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("expectedTypeDoubleReceiver.kt") + public void testExpectedTypeDoubleReceiver() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/expectedTypeDoubleReceiver.kt"); + doTest(fileName); + } + @TestMetadata("expectedTypeFromCast.kt") public void testExpectedTypeFromCast() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/expectedTypeFromCast.kt");