FIR checker: report COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH
This commit is contained in:
committed by
Mikhail Glukhikh
parent
e511eec90e
commit
87c50235ed
+1
-1
@@ -33,5 +33,5 @@ fun <T> test(x: T) {
|
||||
val s4: Pair<Int?, String> = bar(null, null, ::foo)
|
||||
|
||||
val s5: Pair<Int, String> = bar(1, "", ::foo)
|
||||
val (a1: Int, b1: String) = bar(1, "", ::foo)
|
||||
val (a1: Int, b1: String) = <!COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH!>bar(1, "", ::foo)<!>
|
||||
}
|
||||
|
||||
Vendored
-9
@@ -1,9 +0,0 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
class A {
|
||||
operator fun component1() : Int = 1
|
||||
operator fun component2() : Int = 2
|
||||
}
|
||||
|
||||
fun a(aa : A) {
|
||||
val (a: String, b1: String) = aa
|
||||
}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !WITH_NEW_INFERENCE
|
||||
class A {
|
||||
operator fun component1() : Int = 1
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
class A {
|
||||
operator fun component1() = 1
|
||||
operator fun component2() = 1.0
|
||||
}
|
||||
|
||||
class C {
|
||||
operator fun iterator(): Iterator<A> = null!!
|
||||
}
|
||||
|
||||
fun test() {
|
||||
for ((x: Double, y: Int) in C()) {
|
||||
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !WITH_NEW_INFERENCE
|
||||
class A {
|
||||
operator fun component1() = 1
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ fun bar(aList: List<A>) {
|
||||
b checkType { _<String>() }
|
||||
}
|
||||
|
||||
aList.foo { (a: String, b) ->
|
||||
aList.foo { (<!COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH!>a: String<!>, b) ->
|
||||
a checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
|
||||
b checkType { _<String>() }
|
||||
}
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ fun bar() {
|
||||
d checkType { _<Short>() }
|
||||
}
|
||||
|
||||
foo { (a: String, b) ->
|
||||
foo { (<!COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH!>a: String<!>, b) ->
|
||||
a checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
|
||||
b checkType { _<String>() }
|
||||
}
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// FIR_IDENTICAL
|
||||
data class A<T>(val i: T)
|
||||
|
||||
fun <T> foo(block: (A<T>) -> Unit) {}
|
||||
|
||||
fun <T, R> bar() {
|
||||
foo<R> { (<!COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH!>i: T<!>) ->
|
||||
i
|
||||
}
|
||||
}
|
||||
|
||||
data class C<T>(val x: Int, val y: T)
|
||||
|
||||
fun <T, S> foo(c: C<T>) {
|
||||
val (x: Int, y: S) = <!COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH!>c<!>
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ T, /*1*/ R> bar(): kotlin.Unit
|
||||
public fun </*0*/ T> foo(/*0*/ block: (A<T>) -> kotlin.Unit): kotlin.Unit
|
||||
public fun </*0*/ T, /*1*/ S> foo(/*0*/ c: C<T>): kotlin.Unit
|
||||
|
||||
public final data class A</*0*/ T> {
|
||||
public constructor A</*0*/ T>(/*0*/ i: T)
|
||||
public final val i: T
|
||||
public final operator /*synthesized*/ fun component1(): T
|
||||
public final /*synthesized*/ fun copy(/*0*/ i: T = ...): A<T>
|
||||
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final data class C</*0*/ T> {
|
||||
public constructor C</*0*/ T>(/*0*/ x: kotlin.Int, /*1*/ y: T)
|
||||
public final val x: kotlin.Int
|
||||
public final val y: T
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.Int
|
||||
public final operator /*synthesized*/ fun component2(): T
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: T = ...): C<T>
|
||||
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user