Minor. Add more tests

This commit is contained in:
Ilmir Usmanov
2021-12-28 11:52:26 +01:00
parent c8817893d4
commit cece7120df
274 changed files with 20551 additions and 25 deletions
@@ -0,0 +1,22 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
OPTIONAL_JVM_INLINE_ANNOTATION
value class Result<T>(val isSuccess: T)
fun interface ResultHandler<T> {
fun onResult(result: Result<T>)
}
fun doSmth(resultHandler: ResultHandler<Boolean>) {
resultHandler.onResult(Result(true))
}
fun box(): String {
var res = "FAIL"
doSmth { result ->
res = if (result.isSuccess) "OK" else "FAIL 1"
}
return res
}
@@ -0,0 +1,20 @@
// IGNORE_BACKEND: JVM
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
OPTIONAL_JVM_INLINE_ANNOTATION
value class A<T: String>(val value: T)
fun interface B {
fun f(x: A<String>): A<String>
}
inline fun g(unit: Unit = Unit, b: B): A<String> {
return b.f(A("Fail"))
}
fun box(): String {
val b = { _ : A<*> -> A("O") }
return g(b = b).value + g { A("K") }.value
}
@@ -0,0 +1,20 @@
// WITH_STDLIB
// IGNORE_BACKEND: JVM
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
OPTIONAL_JVM_INLINE_ANNOTATION
value class Result<T>(val isSuccess: T)
fun interface ResultHandler<T> {
fun onResult(): Result<T>
}
fun doSmth(resultHandler: ResultHandler<Boolean>): Result<Boolean> {
return resultHandler.onResult()
}
fun box(): String {
var res = doSmth { Result(true) }
return if (res.isSuccess) "OK" else "FAIL"
}