9 lines
423 B
Kotlin
Vendored
9 lines
423 B
Kotlin
Vendored
/*
|
|
Here element has type Captured(*) because of resolution for `iterator()` on this.
|
|
and where we resolve `destination.add(element)` we approximate element to `Any` with smart cast to `R`.
|
|
*/
|
|
inline fun <reified R, C : MutableCollection<in R>> Array<*>.filterIsInstanceTo(destination: C): C {
|
|
for (element in this) if (element is R) destination.add(<!DEBUG_INFO_SMARTCAST!>element<!>)
|
|
return destination
|
|
}
|