Use concrete candidate to resolve collection literal
This helps to avoid resolution errors when there is local array-like function with the same signature as in built-ins
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
// !LANGUAGE: +ArrayLiteralsInAnnotations
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE, -UNSUPPORTED
|
||||
|
||||
annotation class Anno(val a: Array<String> = [""], val b: IntArray = [])
|
||||
|
||||
@Anno([], [])
|
||||
fun test() {}
|
||||
|
||||
fun arrayOf(): Array<Int> = TODO()
|
||||
fun intArrayOf(): Array<Int> = TODO()
|
||||
|
||||
fun local() {
|
||||
val a1: IntArray = [1, 2]
|
||||
val a2: IntArray = []
|
||||
|
||||
val s1: Array<String> = [""]
|
||||
val s2: Array<String> = []
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package
|
||||
|
||||
public fun arrayOf(): kotlin.Array<kotlin.Int>
|
||||
public fun intArrayOf(): kotlin.Array<kotlin.Int>
|
||||
public fun local(): kotlin.Unit
|
||||
@Anno(a = {}, b = {}) public fun test(): kotlin.Unit
|
||||
|
||||
public final annotation class Anno : kotlin.Annotation {
|
||||
public constructor Anno(/*0*/ a: kotlin.Array<kotlin.String> = ..., /*1*/ b: kotlin.IntArray = ...)
|
||||
public final val a: kotlin.Array<kotlin.String>
|
||||
public final val b: kotlin.IntArray
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user