Customize JVM signature for Collection's members

- Do not write signature for `contains`
- Write signature for `containsAll` as it's declared like `containsAll(Collection<?>)`
This commit is contained in:
Denis Zharkov
2015-10-07 21:34:13 +03:00
parent 1f52dfccdb
commit 80da320c2c
10 changed files with 361 additions and 2 deletions

View File

@@ -0,0 +1,81 @@
open class KList<E> : MutableList<E> {
override fun add(e: E): Boolean {
throw UnsupportedOperationException()
}
override fun remove(o: Any?): Boolean {
throw UnsupportedOperationException()
}
override fun addAll(c: Collection<E>): Boolean {
throw UnsupportedOperationException()
}
override fun addAll(index: Int, c: Collection<E>): Boolean {
throw UnsupportedOperationException()
}
override fun removeAll(c: Collection<Any?>): Boolean {
throw UnsupportedOperationException()
}
override fun retainAll(c: Collection<Any?>): Boolean {
throw UnsupportedOperationException()
}
override fun clear() {
throw UnsupportedOperationException()
}
override fun set(index: Int, element: E): E {
throw UnsupportedOperationException()
}
override fun add(index: Int, element: E) {
throw UnsupportedOperationException()
}
override fun remove(index: Int): E {
throw UnsupportedOperationException()
}
override fun listIterator(): MutableListIterator<E> {
throw UnsupportedOperationException()
}
override fun listIterator(index: Int): MutableListIterator<E> {
throw UnsupportedOperationException()
}
override fun subList(fromIndex: Int, toIndex: Int): MutableList<E> {
throw UnsupportedOperationException()
}
override fun iterator(): MutableIterator<E> {
throw UnsupportedOperationException()
}
override val size: Int
get() = throw UnsupportedOperationException()
override fun isEmpty(): Boolean {
throw UnsupportedOperationException()
}
override fun contains(o: E) = true
override fun containsAll(c: Collection<E>) = true
override fun get(index: Int): E {
throw UnsupportedOperationException()
}
override fun indexOf(o: Any?): Int {
throw UnsupportedOperationException()
}
override fun lastIndexOf(o: Any?): Int {
throw UnsupportedOperationException()
}
}
fun box() = J.foo()