Files
kotlin-fork/compiler/testData/codegen/box/inference/builderInference/changingResolveIfDontUseBuilderInferenceDisabledFeature.kt
T
Victor Petukhov 55811c8851 Don't use builder inference if possible
The builder inference is running only if there are still uninferred type variables

^KT-48193 Fixed
2021-08-20 01:28:10 +03:00

22 lines
694 B
Kotlin
Vendored

// WITH_RUNTIME
// DONT_TARGET_EXACT_BACKEND: WASM
// !LANGUAGE: -UseBuilderInferenceOnlyIfNeeded
import kotlin.experimental.ExperimentalTypeInference
@OptIn(ExperimentalTypeInference::class)
fun <K, V> buildMap(@BuilderInference builderAction: MutableMap<K, V>.() -> Unit): Map<K, V> = mapOf()
fun foo(): MutableMap<CharSequence, *> = mutableMapOf<CharSequence, String>()
fun <E> MutableMap<E, *>.swap(x: MutableMap<E, *>) {}
@OptIn(ExperimentalStdlibApi::class)
fun box(): String {
val x: Map<in String, String> = buildMap {
put("", "")
swap(foo())
} // `Map<CharSequence, String>` if we use builder inference, `Map<String, String>` if we don't
return "OK"
}