Add tests for obsolete issues
#KT-31784 Obsolete #KT-31757 Obsolete
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
// !LANGUAGE: +NewInference
|
||||
// WITH_RUNTIME
|
||||
|
||||
@file:UseExperimental(ExperimentalTypeInference::class)
|
||||
|
||||
package test
|
||||
|
||||
import kotlin.experimental.ExperimentalTypeInference
|
||||
|
||||
interface Builder<T : Any> {
|
||||
fun filter(filter: (T) -> Boolean)
|
||||
}
|
||||
|
||||
fun <T : Any> build(@BuilderInference block: Builder<T>.() -> Unit): T {
|
||||
val o = object : Builder<T> {
|
||||
override fun filter(filter: (T) -> Boolean) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
o.block()
|
||||
|
||||
return 42 as T
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val r = build<Int> {
|
||||
filter {
|
||||
it > 10
|
||||
}
|
||||
}
|
||||
|
||||
return if (r == 42) "OK" else "Fail: $r"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// !LANGUAGE: +NewInference
|
||||
// TARGET_BACKEND: JVM
|
||||
// FULL_JDK
|
||||
|
||||
package test
|
||||
|
||||
import java.util.function.*
|
||||
|
||||
interface Interface1<T> : () -> T, Supplier<T> {
|
||||
override fun invoke() = get()
|
||||
}
|
||||
|
||||
class Impl : Interface1<String> {
|
||||
override fun get(): String = "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return Impl()()
|
||||
}
|
||||
Reference in New Issue
Block a user