5afab1ac2b
parameters with bounds/supertypes.
37 lines
558 B
Kotlin
Vendored
37 lines
558 B
Kotlin
Vendored
inline fun <reified T> Any?.check(): Boolean {
|
|
return this is T
|
|
}
|
|
|
|
inline fun <reified T> Any?.check2(): Boolean {
|
|
return check<T>()
|
|
}
|
|
|
|
|
|
var log = ""
|
|
fun log(a: Any?) {
|
|
log += a.toString() + ";"
|
|
}
|
|
|
|
fun test(a: Any?) {
|
|
log(a.check<String>())
|
|
log(a.check<String?>())
|
|
}
|
|
|
|
fun test2(a: Any?) {
|
|
log(a.check2<String>())
|
|
log(a.check2<String?>())
|
|
}
|
|
|
|
fun box(): String {
|
|
test("")
|
|
test(null)
|
|
test2("")
|
|
test2(null)
|
|
|
|
if (log != "true;true;false;true;true;true;false;true;") {
|
|
return "fail"
|
|
}
|
|
|
|
return "OK"
|
|
}
|