// FIR_IDENTICAL // !CHECK_TYPE //KT-2324 Can't resolve generic by type of function result package i //+JDK import java.util.* import checkSubtype fun someFunction(list: List, transform: (T) -> K): List { val result = arrayList() for (i in list) { result.add(transform(i)) } return result } fun testSomeFunction() { val result1 = someFunction(arrayList(1, 2), {checkSubtype(it)}) //type of result1 is List assertEquals(1, result1.get(0)); //OK val result2 = someFunction(arrayList(1, 2), {it}) // type of result2 is List checkSubtype>(result2) assertEquals(1, result2.get(0)); //resolved to error element } //--------------------------------- fun assertEquals(expected: Any?, actual: Any?, message: String = "") { } fun arrayList(vararg values: T) : ArrayList = values.toCollection(ArrayList(values.size)) fun > Array.toCollection(result: C) : C { for (element in this) result.add(element) return result }