34 lines
671 B
Kotlin
Vendored
34 lines
671 B
Kotlin
Vendored
fun test1(x: String?): Int {
|
|
return when {
|
|
EQEQ(arg0 = x, arg1 = null) -> 0
|
|
else -> x.<get-length>()
|
|
}
|
|
}
|
|
|
|
fun <T : CharSequence?> test2(x: T): Int {
|
|
return when {
|
|
EQEQ(arg0 = x, arg1 = null) -> 0
|
|
else -> x.<get-length>()
|
|
}
|
|
}
|
|
|
|
inline fun <reified T : CharSequence?> test3(x: Any): Int {
|
|
return when {
|
|
x !is T -> 0
|
|
else -> x /*as (T & Any) */.<get-length>()
|
|
}
|
|
}
|
|
|
|
inline fun <reified T : CharSequence> test4(x: Any?): Int {
|
|
return when {
|
|
x !is T -> 0
|
|
else -> x /*as T */.<get-length>()
|
|
}
|
|
}
|
|
|
|
fun <T : S?, S : Any?> test5(x: T, fn: Function1<S, Unit>) {
|
|
when {
|
|
EQEQ(arg0 = x, arg1 = null).not() -> fn.invoke(p1 = x)
|
|
}
|
|
}
|