Update test for the builder inference and add new ones

This commit is contained in:
Victor Petukhov
2021-05-21 15:34:52 +03:00
parent 31ed1ad5d9
commit fd5169186e
46 changed files with 2874 additions and 215 deletions
@@ -1,69 +0,0 @@
// !LANGUAGE: +UnrestrictedBuilderInference
// WITH_RUNTIME
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE_ERROR -CAST_NEVER_SUCCEEDS
fun <K> id(x: K): K = x
fun <K, V> build(@BuilderInference builderAction: MutableMap<K, V>.() -> V) {}
fun <K, V> build2(@BuilderInference builderAction: MutableMap<K, V>.() -> K) {}
fun <K, V> build3(@BuilderInference builderAction: MutableMap<K, V>.(K) -> Unit) {}
fun <K, V> build4(@BuilderInference builderAction: MutableMap<K, V>.() -> MutableMap<String, Int>) {}
fun <K : V, V : CharSequence> build5(@BuilderInference builderAction: MutableMap<K, V>.() -> MutableMap<String, V>) {}
fun <K : V, V : CharSequence> build6(@BuilderInference builderAction: MutableMap<K, V>.() -> MutableMap<K, String>) {}
fun <K : V, V : CharSequence> build7(@BuilderInference builderAction: MutableMap<K, V>.() -> MutableMap<String, V>) = null as MutableMap<String, V>
@ExperimentalStdlibApi
fun main() {
buildList {
add("")
val x: MutableList<CharSequence> = this@buildList
}
buildMap {
val x: Function2<String, Char, Char?> = ::put
}
build {
get("")
""
}
build2 {
val x: String = this.values.first()
1
}
build2 {
take(this.values.first())
1
}
build3 { key: String ->
take(this.values.first())
}
build3 { this.foo() }
build4 { this }
build4 { this.run { this } }
build4 { run { this } }
build4 { id(run { this }) }
build5 { id(run { this }) }
build6 { id(run { this }) }
val x: MutableMap<String, CharSequence> = build7 {
id(run { this })
}
}
fun MutableMap<String, Int>.foo() {}
fun take(x: String) {}
@@ -1,69 +0,0 @@
// !LANGUAGE: +UnrestrictedBuilderInference
// WITH_RUNTIME
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE_ERROR -CAST_NEVER_SUCCEEDS
fun <K> id(x: K): K = x
fun <K, V> build(@BuilderInference builderAction: MutableMap<K, V>.() -> V) {}
fun <K, V> build2(@BuilderInference builderAction: MutableMap<K, V>.() -> K) {}
fun <K, V> build3(@BuilderInference builderAction: MutableMap<K, V>.(K) -> Unit) {}
fun <K, V> build4(@BuilderInference builderAction: MutableMap<K, V>.() -> MutableMap<String, Int>) {}
fun <K : V, V : CharSequence> build5(@BuilderInference builderAction: MutableMap<K, V>.() -> MutableMap<String, V>) {}
fun <K : V, V : CharSequence> build6(@BuilderInference builderAction: MutableMap<K, V>.() -> MutableMap<K, String>) {}
fun <K : V, V : CharSequence> build7(@BuilderInference builderAction: MutableMap<K, V>.() -> MutableMap<String, V>) = null as MutableMap<String, V>
@ExperimentalStdlibApi
fun main() {
buildList {
add("")
val x: MutableList<CharSequence> = this@buildList
}
buildMap {
val x: Function2<String, Char, Char?> = ::put
}
build {
get("")
""
}
build2 {
val x: String = this.values.first()
1
}
build2 {
take(this.values.first())
1
}
build3 { key: String ->
take(this.values.first())
}
build3 { this.foo() }
build4 { this }
build4 { this.run { this } }
build4 { run { this } }
build4 { id(run { this }) }
build5 { id(run { this }) }
build6 { id(run { this }) }
val x: MutableMap<String, CharSequence> = build7 {
id(run { this })
}
}
fun MutableMap<String, Int>.foo() {}
fun take(x: String) {}
@@ -1,14 +0,0 @@
package
public fun </*0*/ K, /*1*/ V> build(/*0*/ @kotlin.BuilderInference builderAction: kotlin.collections.MutableMap<K, V>.() -> V): kotlin.Unit
public fun </*0*/ K, /*1*/ V> build2(/*0*/ @kotlin.BuilderInference builderAction: kotlin.collections.MutableMap<K, V>.() -> K): kotlin.Unit
public fun </*0*/ K, /*1*/ V> build3(/*0*/ @kotlin.BuilderInference builderAction: kotlin.collections.MutableMap<K, V>.(K) -> kotlin.Unit): kotlin.Unit
public fun </*0*/ K, /*1*/ V> build4(/*0*/ @kotlin.BuilderInference builderAction: kotlin.collections.MutableMap<K, V>.() -> kotlin.collections.MutableMap<kotlin.String, kotlin.Int>): kotlin.Unit
public fun </*0*/ K : V, /*1*/ V : kotlin.CharSequence> build5(/*0*/ @kotlin.BuilderInference builderAction: kotlin.collections.MutableMap<K, V>.() -> kotlin.collections.MutableMap<kotlin.String, V>): kotlin.Unit
public fun </*0*/ K : V, /*1*/ V : kotlin.CharSequence> build6(/*0*/ @kotlin.BuilderInference builderAction: kotlin.collections.MutableMap<K, V>.() -> kotlin.collections.MutableMap<K, kotlin.String>): kotlin.Unit
public fun </*0*/ K : V, /*1*/ V : kotlin.CharSequence> build7(/*0*/ @kotlin.BuilderInference builderAction: kotlin.collections.MutableMap<K, V>.() -> kotlin.collections.MutableMap<kotlin.String, V>): kotlin.collections.MutableMap<kotlin.String, V>
public fun </*0*/ K> id(/*0*/ x: K): K
@kotlin.ExperimentalStdlibApi public fun main(): kotlin.Unit
public fun take(/*0*/ x: kotlin.String): kotlin.Unit
public fun kotlin.collections.MutableMap<kotlin.String, kotlin.Int>.foo(): kotlin.Unit