[FIR] Implement UNRESOLVED_REFERENCE_WRONG_RECEIVER

This commit is contained in:
Ivan Kochurkin
2021-08-10 16:40:51 +03:00
committed by Space
parent 34cc7e5199
commit 84c5f58cab
129 changed files with 322 additions and 481 deletions
@@ -31,8 +31,8 @@ fun bar(aInstance: A, bInstance: B) {
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>(bInstance) {
<!CANNOT_INFER_PARAMETER_TYPE, COMPONENT_FUNCTION_MISSING, COMPONENT_FUNCTION_MISSING!>(a, b)<!>, (c, d) ->
a <!INAPPLICABLE_CANDIDATE!>checkType<!> { _<Int>() }
b <!INAPPLICABLE_CANDIDATE!>checkType<!> { _<String>() }
a <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>checkType<!> { _<Int>() }
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>checkType<!> { _<String>() }
c checkType { _<Double>() }
d checkType { _<Short>() }
}
@@ -22,12 +22,12 @@ fun bar(aList: List<A>) {
}
aList.foo { (<!COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH!>a: String<!>, b) ->
a checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
a checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Int>() }
b checkType { _<String>() }
}
aList.foo <!ARGUMENT_TYPE_MISMATCH!>{ (a, b): B ->
b checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
a checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
b checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Int>() }
a checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
}<!>
}
@@ -18,7 +18,7 @@ fun bar() {
y checkType { _<(A) -> Unit>() }
val y2 = { (a: Number, b): A ->
a checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
a checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Int>() }
b checkType { _<String>() }
}
@@ -7,8 +7,8 @@ fun foo(block: (A, B) -> Unit) { }
fun bar() {
foo { (a, a), b ->
a checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
b checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
a checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Int>() }
b checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
}
foo { (a, b), a ->
@@ -17,13 +17,13 @@ fun bar() {
}
foo { a, (a, b) ->
a checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
b checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
a checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Int>() }
b checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
}
foo { (a, b), (c, b) ->
a checkType { _<Int>() }
b checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
c checkType { <!INAPPLICABLE_CANDIDATE!>_<!><B>() }
b checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
c checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><B>() }
}
}
@@ -42,7 +42,7 @@ fun bar() {
}
foo { (<!COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH!>a: String<!>, b) ->
a checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
a checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Int>() }
b checkType { _<String>() }
}