class A : LinkedList, List { constructor() /* primary */ { super/*LinkedList*/<@FlexibleNullability Int?>() /* () */ } } class B : LinkedList, List { constructor() /* primary */ { super/*LinkedList*/<@FlexibleNullability Int?>() /* () */ } override fun addFirst(e: Int?) { } override fun remove(): Int { return 1 } override fun remove(element: Int): Boolean { return true } override fun removeAt(index: Int): Int { return 1 } override val size: Int override get(): Int { return 2 } } class C : LinkedList, MutableList { constructor() /* primary */ { super/*LinkedList*/<@FlexibleNullability Int?>() /* () */ } } class D : LinkedList, MutableList { constructor() /* primary */ { super/*LinkedList*/<@FlexibleNullability Int?>() /* () */ } override fun addLast(e: Int?) { } override operator fun get(index: Int): Int? { return 2 } override fun remove(): Int? { return 2 } override fun remove(element: Int?): Boolean { return true } override fun removeAt(index: Int): Int? { return 2 } } fun test(a: A, b: B, c: C, d: D) { a.() /*~> Unit */ a.add(element = 1) /*~> Unit */ a.get(index = 0) /*~> Unit */ a.remove() /*~> Unit */ a.removeAt(p0 = 1) /*~> Unit */ a.remove(element = 1) /*~> Unit */ a.addFirst(p0 = 1) a.addLast(p0 = null) a.removeFirst() /*~> Unit */ a.removeLast() /*~> Unit */ b.() /*~> Unit */ b.add(element = 1) /*~> Unit */ b.get(index = 0) /*~> Unit */ b.remove() /*~> Unit */ b.removeAt(index = 1) /*~> Unit */ b.remove(element = 1) /*~> Unit */ b.addFirst(e = 1) b.addLast(p0 = null) b.removeFirst() /*~> Unit */ b.removeLast() /*~> Unit */ c.() /*~> Unit */ c.add(element = 1) /*~> Unit */ c.get(index = 0) /*~> Unit */ c.remove() /*~> Unit */ c.removeAt(p0 = 1) /*~> Unit */ c.remove(element = 1) /*~> Unit */ c.addFirst(p0 = 1) c.addLast(p0 = null) c.removeFirst() /*~> Unit */ c.removeLast() /*~> Unit */ d.() /*~> Unit */ d.add(element = 1) /*~> Unit */ d.get(index = 0) /*~> Unit */ d.remove() /*~> Unit */ d.removeAt(index = 1) /*~> Unit */ d.remove(element = 1) /*~> Unit */ d.addFirst(p0 = 1) d.addLast(e = null) d.removeFirst() /*~> Unit */ d.removeLast() /*~> Unit */ }