public open class A { fun foo(x: T) = "O" fun foo(x: A) = "K" } interface C { fun foo(x: E): String fun foo(x: A): String } interface D { fun foo(x: A>): String } // Shoudt not be reported CONFLICTING_INHERITED_JVM_DECLARATIONS class B : A>(), C>, D fun box(): String { val x: A = A() val y: A> = A() val b = B() val bResult = b.foo(x) + b.foo(y) if (bResult != "OK") return "fail 1: $bResult" val c: C> = B() val cResult = c.foo(x) + c.foo(y) if (cResult != "OK") return "fail 2: $cResult" val d: D = B() if (d.foo(y) != "K") return "fail 3" return "OK" }