82255d5ee8
Add tests for fake overrides with focus on java interoperability Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
75 lines
1.7 KiB
Kotlin
Vendored
75 lines
1.7 KiB
Kotlin
Vendored
abstract class A : HashSet<Any>, SortedSet<Any> {
|
|
constructor() /* primary */ {
|
|
super/*HashSet*/<@FlexibleNullability 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*/<@FlexibleNullability Any?>()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun first(): Any {
|
|
return 1
|
|
}
|
|
|
|
override fun remove(element: Any): Boolean {
|
|
return true
|
|
}
|
|
|
|
override fun spliterator(): Spliterator<Any> {
|
|
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
|
}
|
|
|
|
}
|
|
|
|
abstract class C : ArrayList<Any>, SortedSet<Any> {
|
|
constructor() /* primary */ {
|
|
super/*ArrayList*/<@FlexibleNullability Any?>()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun spliterator(): Spliterator<Any> {
|
|
TODO(reason = "Not yet implemented")
|
|
}
|
|
|
|
}
|
|
|
|
fun test(a: A, b: B, c: C) {
|
|
a.<get-size>() /*~> Unit */
|
|
a.first() /*~> Unit */
|
|
a.last() /*~> Unit */
|
|
a.add(element = 1) /*~> Unit */
|
|
a.add(element = null) /*~> Unit */
|
|
a.remove(element = 1) /*~> Unit */
|
|
a.remove(element = null) /*~> Unit */
|
|
a.spliterator() /*~> Unit */
|
|
b.<get-size>() /*~> Unit */
|
|
b.first() /*~> Unit */
|
|
b.last() /*~> Unit */
|
|
b.add(element = 1) /*~> Unit */
|
|
b.add(element = null) /*~> Unit */
|
|
b.remove(element = 1) /*~> Unit */
|
|
b.remove<Any?>(element = null) /*~> Unit */
|
|
b.spliterator() /*~> Unit */
|
|
c.<get-size>() /*~> Unit */
|
|
c.first() /*~> Unit */
|
|
c.last() /*~> Unit */
|
|
c.add(element = 1) /*~> Unit */
|
|
c.add(element = null) /*~> Unit */
|
|
c.remove(element = 1) /*~> Unit */
|
|
c.remove(element = null) /*~> Unit */
|
|
c.spliterator() /*~> Unit */
|
|
c.removeAt(p0 = 1) /*~> Unit */
|
|
}
|