82255d5ee8
Add tests for fake overrides with focus on java interoperability Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
50 lines
1.1 KiB
Kotlin
Vendored
50 lines
1.1 KiB
Kotlin
Vendored
abstract class A : HashSet<Any>, SortedSet<Any> {
|
|
constructor() /* primary */ {
|
|
super/*HashSet*/<Any>()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun spliterator(): Spliterator<Any> {
|
|
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
|
}
|
|
|
|
}
|
|
|
|
abstract class B : HashSet<Any>, SortedSet<Any> {
|
|
constructor() /* primary */ {
|
|
super/*HashSet*/<Any>()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun remove(element: Any): Boolean {
|
|
return true
|
|
}
|
|
|
|
override fun spliterator(): Spliterator<Any> {
|
|
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
|
}
|
|
|
|
override val size: Int
|
|
override get(): Int {
|
|
return 5
|
|
}
|
|
|
|
}
|
|
|
|
fun test(a: A, b: B) {
|
|
a.<get-size>() /*~> Unit */
|
|
a.add(element = 1) /*~> Unit */
|
|
a.add(element = null) /*~> Unit */
|
|
a.first() /*~> Unit */
|
|
a.remove(element = 1) /*~> Unit */
|
|
a.removeAll(elements = listOf<Nothing?>(element = null)) /*~> Unit */
|
|
b.<get-size>() /*~> Unit */
|
|
b.add(element = 1) /*~> Unit */
|
|
b.add(element = null) /*~> Unit */
|
|
b.first() /*~> Unit */
|
|
b.remove(element = 1) /*~> Unit */
|
|
b.removeAll(elements = listOf<Nothing?>(element = null)) /*~> Unit */
|
|
}
|