102c9c08d0
Before that commit we desugared `a ?: b` as
when (val elvis = a) {
null -> b
else -> elvis
}
It was incorrect, because `a` should be resolved in dependent mode,
but when it was `elvis` initializer it was resolved in independent
mode, so we can't infer type for `a` in some complex cases
19 lines
364 B
Kotlin
Vendored
19 lines
364 B
Kotlin
Vendored
// ISSUE: KT-39012
|
|
|
|
interface A
|
|
|
|
fun <T> foo(f: (MutableList<T>) -> Unit): List<T>? = TODO()
|
|
fun <T> listOf(): List<T> = TODO()
|
|
|
|
fun bar1(w: List<CharSequence>): List<CharSequence>? {
|
|
return foo { container ->
|
|
container.add("")
|
|
} ?: w
|
|
}
|
|
|
|
fun bar2(): List<CharSequence>? {
|
|
return foo { container ->
|
|
container.add("")
|
|
} ?: listOf()
|
|
}
|