[FIR] Implement UNRESOLVED_REFERENCE_WRONG_RECEIVER
This commit is contained in:
+2
-2
@@ -47,7 +47,7 @@ fun test3() {
|
||||
|
||||
fooSetRef.invoke(foo, <!ARGUMENT_TYPE_MISMATCH!>""<!>)
|
||||
|
||||
foo.x.<!INAPPLICABLE_CANDIDATE!>bar<!>()
|
||||
foo.x.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>bar<!>()
|
||||
}
|
||||
|
||||
fun test4() {
|
||||
@@ -56,5 +56,5 @@ fun test4() {
|
||||
|
||||
fooSetRef.invoke(foo, <!ARGUMENT_TYPE_MISMATCH!>""<!>)
|
||||
|
||||
foo.x.<!INAPPLICABLE_CANDIDATE!>bar<!>()
|
||||
foo.x.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>bar<!>()
|
||||
}
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ fun <T: Any> bar(a: Array<T>): Array<T?> = null!!
|
||||
fun test1(a: Array<out Int>) {
|
||||
val r: Array<out Int?> = <!INITIALIZER_TYPE_MISMATCH!>bar(a)<!>
|
||||
val t = bar(a)
|
||||
t checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Array<out Int?>>() }
|
||||
t checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Array<out Int?>>() }
|
||||
}
|
||||
|
||||
fun <T: Any> foo(l: Array<T>): Array<Array<T?>> = null!!
|
||||
@@ -14,5 +14,5 @@ fun <T: Any> foo(l: Array<T>): Array<Array<T?>> = null!!
|
||||
fun test2(a: Array<out Int>) {
|
||||
val r: Array<out Array<out Int?>> = <!INITIALIZER_TYPE_MISMATCH!>foo(a)<!>
|
||||
val t = foo(a)
|
||||
t checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Array<out Array<out Int?>>>() }
|
||||
t checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Array<out Array<out Int?>>>() }
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -3,11 +3,11 @@
|
||||
fun <T : Any> Array<T?>.filterNotNull(): List<T> = throw Exception()
|
||||
|
||||
fun test1(a: Array<out Int?>) {
|
||||
val list = a.<!INAPPLICABLE_CANDIDATE!>filterNotNull<!>()
|
||||
val list = a.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>filterNotNull<!>()
|
||||
list checkType { _<List<Int>>() }
|
||||
}
|
||||
|
||||
fun test2(vararg a: Int?) {
|
||||
val list = a.<!INAPPLICABLE_CANDIDATE!>filterNotNull<!>()
|
||||
val list = a.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>filterNotNull<!>()
|
||||
list checkType { _<List<Int>>() }
|
||||
}
|
||||
|
||||
@@ -2,5 +2,5 @@ fun <T> Array<T>.foo() {}
|
||||
|
||||
fun test(array: Array<out Int>) {
|
||||
array.foo()
|
||||
array.<!INAPPLICABLE_CANDIDATE!>foo<!><<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out Int<!>>()
|
||||
array.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!><<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out Int<!>>()
|
||||
}
|
||||
|
||||
+7
-7
@@ -20,20 +20,20 @@ fun main(x: Foo<out Number?>, y: Bar<out Number?>, z1: Foo<out Number>, z2: Bar<
|
||||
x.foo()
|
||||
x.bar()
|
||||
x.boo1()
|
||||
x.<!INAPPLICABLE_CANDIDATE!>boo2<!>()
|
||||
x.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo2<!>()
|
||||
|
||||
y.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
||||
y.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>()
|
||||
y.bar()
|
||||
y.<!INAPPLICABLE_CANDIDATE!>boo1<!>()
|
||||
y.<!INAPPLICABLE_CANDIDATE!>boo2<!>()
|
||||
y.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo1<!>()
|
||||
y.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo2<!>()
|
||||
|
||||
z1.foo()
|
||||
z1.bar()
|
||||
z1.boo1()
|
||||
z1.<!INAPPLICABLE_CANDIDATE!>boo2<!>()
|
||||
z1.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo2<!>()
|
||||
|
||||
z2.foo()
|
||||
z2.bar()
|
||||
z2.<!INAPPLICABLE_CANDIDATE!>boo1<!>()
|
||||
z2.<!INAPPLICABLE_CANDIDATE!>boo2<!>()
|
||||
z2.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo1<!>()
|
||||
z2.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo2<!>()
|
||||
}
|
||||
|
||||
+7
-7
@@ -20,20 +20,20 @@ fun main(x: Foo<out Number?>, y: Bar<out Number?>, z1: Foo<out Number>, z2: Bar<
|
||||
x.foo()
|
||||
x.bar()
|
||||
x.boo1()
|
||||
x.<!INAPPLICABLE_CANDIDATE!>boo2<!>()
|
||||
x.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo2<!>()
|
||||
|
||||
y.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
||||
y.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>()
|
||||
y.bar()
|
||||
y.<!INAPPLICABLE_CANDIDATE!>boo1<!>()
|
||||
y.<!INAPPLICABLE_CANDIDATE!>boo2<!>()
|
||||
y.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo1<!>()
|
||||
y.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo2<!>()
|
||||
|
||||
z1.foo()
|
||||
z1.bar()
|
||||
z1.boo1()
|
||||
z1.<!INAPPLICABLE_CANDIDATE!>boo2<!>()
|
||||
z1.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo2<!>()
|
||||
|
||||
z2.foo()
|
||||
z2.bar()
|
||||
z2.<!INAPPLICABLE_CANDIDATE!>boo1<!>()
|
||||
z2.<!INAPPLICABLE_CANDIDATE!>boo2<!>()
|
||||
z2.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo1<!>()
|
||||
z2.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>boo2<!>()
|
||||
}
|
||||
|
||||
@@ -17,14 +17,14 @@ class SomeClass {
|
||||
val withoutType: LambdaWithReceiver
|
||||
get() = when (e) {
|
||||
E.VALUE -> { param ->
|
||||
<!INAPPLICABLE_CANDIDATE!>method<!>(param)
|
||||
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>method<!>(param)
|
||||
}
|
||||
}
|
||||
|
||||
val withExplicitType: LambdaWithReceiver
|
||||
get() = when (e) {
|
||||
E.VALUE -> { param: Parameter ->
|
||||
<!INAPPLICABLE_CANDIDATE!>method<!>(param)
|
||||
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>method<!>(param)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,4 +9,4 @@ fun <T, Q> List<T>.map1(f: (T)-> Q): List<T>? = tail!!.map1(f)
|
||||
|
||||
fun <T, Q> List<T>.map2(f: (T)-> Q): List<T>? = tail.sure().map2(f)
|
||||
|
||||
fun <T, Q> List<T>.map3(f: (T)-> Q): List<T>? = tail.<!INAPPLICABLE_CANDIDATE!>sure<!><T>().<!INAPPLICABLE_CANDIDATE!>map3<!>(f)
|
||||
fun <T, Q> List<T>.map3(f: (T)-> Q): List<T>? = tail.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>sure<!><T>().<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>map3<!>(f)
|
||||
|
||||
@@ -36,7 +36,7 @@ fun Number.num() {}
|
||||
fun main(b: Base<out Number>) {
|
||||
b.foo().num()
|
||||
if (b is Derived<*>) {
|
||||
b.foo().<!INAPPLICABLE_CANDIDATE!>num<!>()
|
||||
b.foo().<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>num<!>()
|
||||
b.baz().length
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user