[NI] Align builder inference with the old inference

#KT-29184 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2019-03-26 15:32:39 +03:00
parent 1eb70ea19e
commit b10d19dc78
19 changed files with 110 additions and 66 deletions
@@ -53,7 +53,7 @@ val test6 = <!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>generate<!> {
}
val test7 = <!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>generate<!> {
yield("baz")
yield(<!NI;TYPE_MISMATCH!>"baz"<!>)
genericExtension<Int>()
}
@@ -5,9 +5,9 @@ public val test2: kotlin.Any?
public val test3: kotlin.Int
public val test4: kotlin.Any?
public val test5: kotlin.Int
public val test6: kotlin.String
public val test7: kotlin.String
public val test8: kotlin.Any?
public val test6: kotlin.Any?
public val test7: kotlin.Int
public val test8: kotlin.String
public fun </*0*/ S> generate(/*0*/ @kotlin.BuilderInference g: suspend Controller<S>.() -> kotlin.Unit): S
public fun Base.baseExtension(): kotlin.Unit
public fun </*0*/ S> Controller<S>.genericExtension(): kotlin.Unit
@@ -23,7 +23,7 @@ val memberWithoutAnn = <!NI;IMPLICIT_NOTHING_AS_TYPE_PARAMETER, OI;TYPE_INFERENC
}
val extension = <!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
extensionAdd("foo")
<!NI;NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE!>extensionAdd("foo")<!>
}
val safeExtension = build {
@@ -1,6 +1,6 @@
package
public val extension: kotlin.collections.List<kotlin.Any?>
public val extension: kotlin.collections.List<kotlin.String>
public val member: kotlin.collections.List<kotlin.Int>
public val memberWithoutAnn: kotlin.collections.List<kotlin.Nothing>
public val safeExtension: kotlin.collections.List<kotlin.String>
@@ -30,7 +30,7 @@ val memberWithoutAnn = <!NI;IMPLICIT_NOTHING_AS_TYPE_PARAMETER, OI;TYPE_INFERENC
}
val extension = <!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
extensionAdd("foo")
<!NI;NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE!>extensionAdd("foo")<!>
}
val safeExtension = build {
@@ -1,9 +1,9 @@
package
public val extension: kotlin.collections.List<kotlin.Any?>
public val member: kotlin.collections.List<kotlin.Any?>
public val extension: kotlin.collections.List<kotlin.String>
public val member: kotlin.collections.List<kotlin.Int>
public val memberWithoutAnn: kotlin.collections.List<kotlin.Nothing>
public val safeExtension: kotlin.collections.List<kotlin.Any?>
public val safeExtension: kotlin.collections.List<kotlin.String>
public fun </*0*/ S> build(/*0*/ @kotlin.BuilderInference g: Builder<S>.() -> kotlin.Unit): kotlin.collections.List<S>
public fun </*0*/ S> wrongBuild(/*0*/ g: Builder<S>.() -> kotlin.Unit): kotlin.collections.List<S>
public fun </*0*/ S> Builder<S>.extensionAdd(/*0*/ s: S): kotlin.Unit
@@ -26,7 +26,7 @@ val normal = generate {
}
val extension = <!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>generate<!> {
extensionYield("foo")
<!NI;NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE!>extensionYield("foo")<!>
}
val safeExtension = generate {
@@ -1,6 +1,8 @@
// !LANGUAGE: -ReleaseCoroutines -ExperimentalBuilderInference
// !DIAGNOSTICS: -EXPERIMENTAL_FEATURE_WARNING
// !WITH_NEW_INFERENCE
// SKIP_TXT
@kotlin.coroutines.experimental.RestrictsSuspension
class RestrictedController<T> {
suspend fun yield(<!UNUSED_PARAMETER!>x<!>: T) {}
@@ -75,13 +77,13 @@ fun test() {
this@a.<!ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL!>yield<!>(1)
this@a.<!ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL!>yield2<!>(1)
with(this) {
<!NI;NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE!>with(this) {
<!ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL!>yield<!>("")
this@with.<!ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL!>yield<!>("")
<!ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL!>yield2<!>("")
this@with.<!ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL!>yield2<!>("")
}
}<!>
}
}