Introduce FirInitializerTypeMismatchChecker

This commit is contained in:
vldf
2021-03-01 19:29:59 +03:00
committed by Mikhail Glukhikh
parent 7ed35e5c2b
commit 24f1f1221e
114 changed files with 647 additions and 285 deletions
@@ -3,7 +3,7 @@
fun <E> bar(x: E) {}
fun <T> foo(): T {
val x1: T = null
val x1: T = <!INITIALIZER_TYPE_MISMATCH!>null<!>
val x2: T? = null
bar<T>(<!ARGUMENT_TYPE_MISMATCH!>null<!>)
@@ -20,7 +20,7 @@ class A<F> {
fun xyz(x: F) {}
fun foo(): F {
val x1: F = null
val x1: F = <!INITIALIZER_TYPE_MISMATCH!>null<!>
val x2: F? = null
xyz(<!ARGUMENT_TYPE_MISMATCH!>null<!>)
@@ -9,7 +9,7 @@ fun main() {
val a : ArrayList<ArrayList<String>> = ArrayList()
val b : ListOfLists<String> = ListOfLists(a)
val c : ListOfLists<*> = b
val d : ArrayList<ArrayList<*>> = c.x
val d : ArrayList<ArrayList<*>> = <!INITIALIZER_TYPE_MISMATCH!>c.x<!>
c.x checkType { <!INAPPLICABLE_CANDIDATE!>_<!><ArrayList<out ArrayList<*>>>() }
}
@@ -13,7 +13,7 @@ class A<E> {
fun test(a: A<out CharSequence>, z: Out<CharSequence>) {
a.foo {
val x: String = 1 // Should be no TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS
val x: String = <!INITIALIZER_TYPE_MISMATCH!>1<!> // Should be no TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS
""
}
a.bar { Out<CharSequence>() }
@@ -11,7 +11,7 @@ fun foo(x: A<String, Any?>, cs: CharSequence, ls: List<CharSequence>) {
val y: A<CharSequence, String> = x
y.foo(<!ARGUMENT_TYPE_MISMATCH!>cs<!>)
val s: String = y.foo(<!ARGUMENT_TYPE_MISMATCH!>cs<!>, <!ARGUMENT_TYPE_MISMATCH!>ls<!>)
val s: String = <!INITIALIZER_TYPE_MISMATCH!>y.foo(<!ARGUMENT_TYPE_MISMATCH!>cs<!>, <!ARGUMENT_TYPE_MISMATCH!>ls<!>)<!>
val ls2: List<String> = y.bar()
val ls2: List<String> = <!INITIALIZER_TYPE_MISMATCH!>y.bar()<!>
}