abstract class A : HashSet, SequencedSet { constructor() /* primary */ { super/*HashSet*/() /* () */ } override fun spliterator(): Spliterator { return CHECK_NOT_NULL(arg0 = null) } } class B : HashSet, SequencedSet { constructor() /* primary */ { super/*HashSet*/() /* () */ } override fun reversed(): SequencedSet { return CHECK_NOT_NULL(arg0 = null) } override fun spliterator(): Spliterator { return CHECK_NOT_NULL(arg0 = null) } } fun test(a: A, b: B) { a.() /*~> Unit */ a.addFirst(p0 = null) a.reversed() /*~> Unit */ b.reversed() /*~> Unit */ b.addFirst(p0 = 1) }