abstract class A : HashSet, SortedSet { constructor() /* primary */ { super/*HashSet*/() /* () */ } override fun spliterator(): Spliterator { return CHECK_NOT_NULL(arg0 = null) } } abstract class B : HashSet, SortedSet { constructor() /* primary */ { super/*HashSet*/() /* () */ } override fun remove(element: Any): Boolean { return true } override fun spliterator(): Spliterator { return CHECK_NOT_NULL(arg0 = null) } override val size: Int override get(): Int { return 5 } } fun test(a: A, b: B) { a.() /*~> Unit */ a.add(element = 1) /*~> Unit */ a.add(element = null) /*~> Unit */ a.first() /*~> Unit */ a.remove(element = 1) /*~> Unit */ a.removeAll(elements = listOf(element = null)) /*~> Unit */ b.() /*~> Unit */ b.add(element = 1) /*~> Unit */ b.add(element = null) /*~> Unit */ b.first() /*~> Unit */ b.remove(element = 1) /*~> Unit */ b.removeAll(elements = listOf(element = null)) /*~> Unit */ }