// TARGET_BACKEND: JVM // WITH_STDLIB // FULL_JDK // MODULE: lib // FILE: A.kt package a interface Rec> { fun t(): T } interface Super { fun foo(p: Rec<*, *>) = p.t() } // MODULE: main(lib) // FILE: B.kt import a.* fun box(): String { val declaredMethod = Super::class.java.getDeclaredMethod("foo", Rec::class.java) val genericString = declaredMethod.toGenericString() if (genericString != "public abstract a.Rec a.Super.foo(a.Rec)") return "Fail: $genericString" return "OK" } fun test(s: Super, p: Rec<*, *>) { s.foo(p).t().t().t() }