Files
kotlin-fork/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.fir.kt
T
Kirill Rakhman 97024d9ccb [FIR] Resolve array literal argument for non-primitive-array parameter as arrayOf call in annotation calls
This allows us to properly complete array literals arguments of
annotation calls fixing several false-negative type mismatch errors
as well as enabling the inference of generic type arguments.

#KT-59581 Fixed
#KT-58883 Fixed
2023-07-19 13:34:58 +00:00

31 lines
558 B
Kotlin
Vendored

// !LANGUAGE: +BareArrayClassLiteral
import kotlin.reflect.KClass
annotation class Foo(val a: Array<KClass<*>> = [])
class Gen<T>
annotation class Bar(val a: Array<KClass<*>> = [Int::class, Array<Int>::class, Gen::class])
@Foo([])
fun test1() {}
@Foo([Int::class, String::class])
fun test2() {}
@Foo([Array::class])
fun test3() {}
@Foo([<!CLASS_LITERAL_LHS_NOT_A_CLASS!>Gen<Int>::class<!>])
fun test4() {}
@Foo(<!ARGUMENT_TYPE_MISMATCH!>[""]<!>)
fun test5() {}
@Foo(<!ARGUMENT_TYPE_MISMATCH!>[Int::class, 1]<!>)
fun test6() {}
@Bar
fun test7() {}