[NI] Fix shouldRunCompletion for builder inference session

#KT-41308 Fixed
#KT-41363
This commit is contained in:
Dmitriy Novozhilov
2020-08-25 11:56:36 +03:00
parent e98cbf81cf
commit 9cde42e2bc
22 changed files with 162 additions and 5 deletions
@@ -0,0 +1,9 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE_ERROR -UNUSED_EXPRESSION
fun test(s: String?) {
val list = buildList {
s?.let(::add)
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.List<kotlin.String>")!>list<!>
}
@@ -0,0 +1,3 @@
package
public fun test(/*0*/ s: kotlin.String?): kotlin.Unit
@@ -21,7 +21,7 @@ fun test_2() {
fun test_3() {
sequence {
yield(materialize<Int>())
<!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>materialize()<!>
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>materialize<!>()
}
}
@@ -32,4 +32,4 @@ interface Inv<T> {
fun yield(element: T)
}
fun <K> materialize(): Inv<K> = TODO()
fun <K> materialize(): Inv<K> = TODO()
@@ -0,0 +1,7 @@
Failures detected in FirBodyResolveTransformerAdapter, file: /kt41308.fir.kt
Cause: java.lang.RuntimeException: While resolving call R?C|kotlin/sequences/sequence|(<L> = sequence@fun R|kotlin/sequences/SequenceScope<Stub: TypeVariable(T)>|.<anonymous>(): R|kotlin/Unit| {
lval list: R|kotlin/collections/List<kotlin/String>?| = Null(null)
lval outputList: R|TypeVariable(K)| = R|<local>/list| ?: R?C|kotlin/collections/listOf|()
yieldAll#(R|<local>/outputList|)
}
)
@@ -0,0 +1,9 @@
// ISSUE: KT-41308
fun main() {
sequence {
val list: List<String>? = null
val outputList = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.List<kotlin.String>")!>list ?: listOf()<!>
yieldAll(outputList)
}
}
@@ -0,0 +1,9 @@
// ISSUE: KT-41308
fun main() {
sequence {
val list: List<String>? = null
val outputList = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.List<kotlin.String>")!>list ?: listOf()<!>
yieldAll(outputList)
}
}
@@ -0,0 +1,3 @@
package
public fun main(): kotlin.Unit
@@ -21,4 +21,4 @@ fun main() {
}
}
class Foo(val notNullProp: String)
class Foo(val notNullProp: String)