// !LANGUAGE: +NewInference // TARGET_BACKEND: JVM // WITH_REFLECT import kotlin.test.assertEquals fun bar0(vararg a: T) = test(a::get) fun bar1(vararg a: T) = test(a::set) fun bar2(a: Array) = test(a::get) fun bar3(a: Array) = test(a::set) fun bar4(a: Array) = test(a::get) fun bar5(a: Array) = test(a::set) fun test(f: F): String = f.toString() fun box(): String { val getMethod = "fun kotlin.Array.get(kotlin.Int): T" val setMethod = "fun kotlin.Array.set(kotlin.Int, T): kotlin.Unit" val b0 = bar0("") val b1 = bar1("") assertEquals(getMethod, b0) assertEquals(setMethod, b1) val b2 = bar2(arrayOf("")) val b3 = bar3(arrayOf("")) assertEquals(getMethod, b2) assertEquals(setMethod, b3) val b4 = bar4(arrayOf("")) val b5 = bar5(arrayOf("")) assertEquals(getMethod, b4) assertEquals(setMethod, b5) return "OK" }