Files
kotlin-fork/compiler/testData/diagnostics/tests/inference/mapFunction.kt
T

37 lines
782 B
Kotlin
Vendored

// !CHECK_TYPE
package a
//+JDK
import java.util.*
import checkSubtype
fun foo() {
val v = array(1, 2, 3)
val u = v map { it * 2 }
checkSubtype<List<Int>>(u)
val a = 1..5
val b = a.map { it * 2 }
checkSubtype<List<Int>>(b)
//check for non-error types
checkSubtype<String>(<!TYPE_MISMATCH!>u<!>)
checkSubtype<String>(<!TYPE_MISMATCH!>b<!>)
}
// ---------------------
// copy from kotlin util (but with `infix` modifier on `map`)
@Suppress("UNCHECKED_CAST")
fun <T> array(vararg t : T) : Array<T> = t as Array<T>
infix fun <T, R> Array<T>.map(transform : (T) -> R) : List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
infix fun <T, R> Iterable<T>.map(transform : (T) -> R) : List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>