abstract class A : SortedSet, Set { constructor() /* primary */ { super/*Any*/() /* () */ } } abstract class B : SortedSet, Set { override val size: Int field = size override get constructor(size: Int) /* primary */ { super/*Any*/() /* () */ } override fun first(): Int { return 1 } override fun reversed(): SortedSet { return CHECK_NOT_NULL(arg0 = null) } } abstract class C : SortedSet, MutableSet { constructor() /* primary */ { super/*Any*/() /* () */ } } abstract class D : SortedSet, MutableSet { constructor() /* primary */ { super/*Any*/() /* () */ } override fun addLast(e: Int?) { } override fun reversed(): SortedSet? { return CHECK_NOT_NULL(arg0 = null) } } fun test(a: A, b: B, c: C, d: D) { a.() /*~> Unit */ a.add(element = 1) /*~> Unit */ a.remove(element = 1) /*~> Unit */ a.addFirst(p0 = 1) a.addLast(p0 = null) a.removeFirst() /*~> Unit */ a.removeLast() /*~> Unit */ a.reversed() /*~> Unit */ a.getFirst() /*~> Unit */ b.reversed() /*~> Unit */ b.getFirst() /*~> Unit */ c.() /*~> Unit */ c.add(element = 1) /*~> Unit */ c.remove(element = 1) /*~> Unit */ c.addFirst(p0 = 1) c.addLast(p0 = null) c.removeFirst() /*~> Unit */ c.removeLast() /*~> Unit */ c.reversed() /*~> Unit */ c.getFirst() /*~> Unit */ d.reversed() /*~> Unit */ d.addLast(e = null) }