c7435ba760
We are going to deprecate `WITH_RUNTIME` directive. The main reason behind this change is that `WITH_STDLIB` directive better describes its meaning, specifically it will add kotlin stdlib to test's classpath.
33 lines
958 B
Kotlin
Vendored
33 lines
958 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// WITH_STDLIB
|
|
// FILE: removeClashJava.kt
|
|
class Queue<T>() : Collection<T> {
|
|
override val size: Int = 1
|
|
override fun contains(element: T): Boolean = TODO()
|
|
override fun containsAll(elements: Collection<T>): Boolean = TODO()
|
|
override fun isEmpty(): Boolean = TODO()
|
|
override fun iterator(): Iterator<T> = TODO()
|
|
|
|
fun remove(v: Any?): Any? = v
|
|
}
|
|
|
|
fun box(): String {
|
|
val q = Queue<String>()
|
|
J.testRemove(q)
|
|
return q.remove("OK") as String
|
|
}
|
|
|
|
// FILE: J.java
|
|
import java.util.Collection;
|
|
|
|
public class J {
|
|
public static void testRemove(Collection<String> c) {
|
|
try {
|
|
c.remove("");
|
|
throw new AssertionError("c.remove(...) should throw UnsupportedOperationException");
|
|
} catch (UnsupportedOperationException e) {
|
|
} catch (Throwable e) {
|
|
throw new AssertionError("c.remove(...) should throw UnsupportedOperationException");
|
|
}
|
|
}
|
|
} |