abstract class A : SortedMap, Map { constructor() /* primary */ { super/*Any*/() /* () */ } } abstract class B : SortedMap, Map { constructor() /* primary */ { super/*Any*/() /* () */ } override fun put(key: Boolean, value: Boolean): Boolean? { return false } override fun remove(key: Boolean?): Boolean? { return false } } fun test(a: A, b: B) { a.() /*~> Unit */ a.set<@FlexibleNullability Boolean?, @FlexibleNullability Boolean?>(key = true, value = true) a.put(key = null, value = null) /*~> Unit */ a.get(key = true) /*~> Unit */ a.get(key = null) /*~> Unit */ a.remove(key = null) /*~> Unit */ a.remove(key = true) /*~> Unit */ b.put(key = false, value = false) /*~> Unit */ b.set<@FlexibleNullability Boolean?, @FlexibleNullability Boolean?>(key = true, value = true) b.remove(key = null) /*~> Unit */ }