| // SKIP_JDK6 | |
| // TARGET_BACKEND: JVM | |
| // FULL_JDK | |
| // WITH_STDLIB | |
| import java.util.* | |
| import java.util.function.Predicate | |
| class MyList : AbstractCollection<String>(), MutableCollection<String> { | |
| override fun iterator(): MutableIterator<String> { | |
| throw UnsupportedOperationException() | |
| } | |
| override val size: Int | |
| get() = throw UnsupportedOperationException() | |
| override fun removeIf(predicate: Predicate<in String>) = | |
| predicate.test("abc") | |
| } | |
| fun box(): String { | |
| val ml = mutableListOf("xyz", "abc") | |
| if (!ml.removeIf { x -> x == "abc" }) return "fail 1" | |
| if (ml.removeIf { x -> x == "abc" }) return "fail 2" | |
| if (ml != listOf("xyz")) return "fail 3" | |
| val myList = MyList() | |
| if (!myList.removeIf { x -> x == "abc" }) return "fail 4" | |
| if (myList.removeIf { x -> x == "xyz" }) return "fail 5" | |
| return "OK" | |
| } |