[FIR] Fix missing type mismatch with array literals

Clarify existing type mismatch errors on array literals

^KT-60474 Fixed

Remove ResolutionMode.TransformingArrayLiterals
This commit is contained in:
Ivan Kochurkin
2023-07-21 19:50:27 +02:00
committed by Space Team
parent e1ebbc10d9
commit f4e4c5e724
12 changed files with 107 additions and 70 deletions
@@ -6,7 +6,7 @@ fun test1() {}
@Foo([], [], [])
fun test2() {}
@Foo([1f], <!ARGUMENT_TYPE_MISMATCH!>[' ']<!>, [1])
@Foo([<!ARGUMENT_TYPE_MISMATCH!>1f<!>], <!ARGUMENT_TYPE_MISMATCH!>[' ']<!>, [<!ARGUMENT_TYPE_MISMATCH!>1<!>])
fun test3() {}
@Foo(c = [1f], b = [""], a = [1])
@@ -12,7 +12,7 @@ fun basicTypes() {
}
fun basicTypesWithErrors() {
val a: IntArray = <!INITIALIZER_TYPE_MISMATCH!>[1.0]<!>
val b: ShortArray = <!INITIALIZER_TYPE_MISMATCH!>[1.0]<!>
val c: CharArray = <!INITIALIZER_TYPE_MISMATCH!>["a"]<!>
val a: IntArray = [<!ARGUMENT_TYPE_MISMATCH!>1.0<!>]
val b: ShortArray = [<!ARGUMENT_TYPE_MISMATCH!>1.0<!>]
val c: CharArray = [<!ARGUMENT_TYPE_MISMATCH!>"a"<!>]
}
@@ -8,7 +8,7 @@ annotation class Ann4(vararg val a: String = ["/"])
annotation class Ann5(vararg val a: Ann4 = [])
annotation class Ann6(vararg val a: Ann4 = [Ann4(*["a", "b"])])
annotation class Ann7(vararg val a: Long = <!INITIALIZER_TYPE_MISMATCH!>[1L, null, ""]<!>)
annotation class Ann7(vararg val a: Long = [1L, <!NULL_FOR_NONNULL_TYPE!>null<!>, <!ARGUMENT_TYPE_MISMATCH!>""<!>])
@Ann1(*[])
fun test1_0() {}
@@ -31,6 +31,9 @@ fun test5() {}
@Ann6(*[])
fun test6() {}
@Ann7(1, 2)
fun test7() {}
annotation class AnnArray(val a: Array<String>)
@AnnArray(<!NON_VARARG_SPREAD!>*<!>["/"])
@@ -31,6 +31,9 @@ fun test5() {}
@Ann6(*[])
fun test6() {}
@Ann7(1, 2)
fun test7() {}
annotation class AnnArray(val a: Array<String>)
@AnnArray(<!NON_VARARG_SPREAD_ERROR!>*<!>["/"])
@@ -7,6 +7,7 @@ package
@Ann3(a = {0.0.toFloat(), Infinity.toFloat()}) public fun test3(): kotlin.Unit
@Ann5(a = {Ann4(a = {"/"})}) public fun test5(): kotlin.Unit
@Ann6(a = {}) public fun test6(): kotlin.Unit
@Ann7(a = {1.toLong(), 2.toLong()}) public fun test7(): kotlin.Unit
@AnnArray(a = {"/"}) public fun testArray(): kotlin.Unit
@Ann1(a = {{""}}) public fun testVararg(): kotlin.Unit
@@ -21,6 +21,6 @@ annotation class Base(
)
annotation class Err(
val a: IntArray = <!INITIALIZER_TYPE_MISMATCH!>[1L]<!>,
val a: IntArray = [<!ARGUMENT_TYPE_MISMATCH!>1L<!>],
val b: Array<String> = <!TYPE_MISMATCH, TYPE_MISMATCH!>[1]<!>
)
@@ -17,7 +17,7 @@ annotation class Bar(
)
annotation class Baz(
val a: IntArray = <!INITIALIZER_TYPE_MISMATCH!>[null]<!>,
val b: IntArray = <!INITIALIZER_TYPE_MISMATCH!>[1, null, 2]<!>,
val c: IntArray = <!INITIALIZER_TYPE_MISMATCH!>[<!NO_THIS!>this<!>]<!>
val a: IntArray = [<!NULL_FOR_NONNULL_TYPE!>null<!>],
val b: IntArray = [1, <!NULL_FOR_NONNULL_TYPE!>null<!>, 2],
val c: IntArray = [<!NO_THIS!>this<!>]
)