abstract class A : SequencedCollection { constructor() /* primary */ { super/*Any*/() /* () */ } } abstract class B : SequencedCollection { override val size: Int field = size override get constructor(size: Int) /* primary */ { super/*Any*/() /* () */ } override fun removeFirst(): Int { return 1 } override fun reversed(): SequencedCollection { return CHECK_NOT_NULL(arg0 = null) } } abstract class C : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } } abstract class D : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } override fun remove(element: Int?): Boolean { return true } override fun removeFirst(): Int { return 2 } override fun reversed(): SequencedCollection { return CHECK_NOT_NULL(arg0 = null) } override val size: Int override get(): Int { return 5 } } abstract class E : Java1, Java2 { override val size: Int field = size override get constructor(size: Int) /* primary */ { super/*Java1*/() /* () */ } override fun getFirst(): Int { return 2 } } abstract class F : Java2, KotlinInterface { constructor() /* primary */ { super/*Any*/() /* () */ } override fun getFirst(): Int { return 2 } } abstract class G : Java3 { constructor() /* primary */ { super/*Java3*/() /* () */ } } interface KotlinInterface : SequencedCollection { } fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G) { a.addFirst(p0 = 1) a.addLast(p0 = null) a.getFirst() /*~> Unit */ a.getLast() /*~> Unit */ a.first<@FlexibleNullability Int?>() /*~> Unit */ a.last<@FlexibleNullability Int?>() /*~> Unit */ a.removeFirst() /*~> Unit */ a.removeLast() /*~> Unit */ a.reversed() /*~> Unit */ b.addFirst(p0 = 1) b.addLast(p0 = null) b.getFirst() /*~> Unit */ b.getLast() /*~> Unit */ b.removeFirst() /*~> Unit */ b.removeLast() /*~> Unit */ b.reversed() /*~> Unit */ c.addFirst(p0 = 1) c.addLast(p0 = null) c.getFirst() /*~> Unit */ c.getLast() /*~> Unit */ c.removeFirst() /*~> Unit */ c.removeLast() /*~> Unit */ c.reversed() /*~> Unit */ d.removeFirst() /*~> Unit */ d.removeLast() /*~> Unit */ d.addFirst(p0 = 1) d.addLast(p0 = null) d.reversed() /*~> Unit */ d.getFirst() /*~> Unit */ d.getLast() /*~> Unit */ e.getFirst() /*~> Unit */ e.getLast() /*~> Unit */ e.removeFirst() /*~> Unit */ e.removeLast() /*~> Unit */ e.addFirst(p0 = 1) e.addLast(p0 = null) e.reversed() /*~> Unit */ f.getFirst() /*~> Unit */ f.getLast() /*~> Unit */ f.removeFirst() /*~> Unit */ f.removeLast() /*~> Unit */ f.addFirst(p0 = 1) f.addLast(p0 = null) f.reversed() /*~> Unit */ g.getFirst() /*~> Unit */ g.getLast() /*~> Unit */ g.removeFirst() /*~> Unit */ g.removeLast() /*~> Unit */ g.addFirst(p0 = 1) g.addLast(p0 = null) g.reversed() /*~> Unit */ }