| // WITH_STDLIB | |
| // FILE: lib.kt | |
| import kotlin.test.* | |
| @Suppress("NOTHING_TO_INLINE") | |
| inline fun <T, C : MutableCollection<in T>> foo(destination: C, predicate: (T) -> Boolean): C { | |
| for (element in destination) { | |
| val value = element as T | |
| if (!predicate(value)) destination.add(value) | |
| } | |
| return destination | |
| } | |
| // FILE: main.kt | |
| import kotlin.test.* | |
| fun bar(): Boolean { | |
| val result = foo <Int, MutableList<Int>> (mutableListOf(1, 2, 3)) { true } | |
| return result.isEmpty() | |
| } | |
| fun box(): String { | |
| assertFalse(bar()) | |
| return "OK" | |
| } |