// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: J.java import java.util.*; public interface J { T foo(List p0, Map> p1); } // FILE: K.kt import kotlin.test.assertEquals object O : J { override fun foo(p0: List, p1: Map>): Long = 42L } class A : J by O fun box(): String { val m = A::class.java.getDeclaredMethod("foo", List::class.java, Map::class.java) assertEquals( "[interface java.util.List, interface java.util.Map]", m.parameterTypes.contentToString() ) assertEquals( "[java.util.List, java.util.Map>]", m.genericParameterTypes.contentToString() ) return "OK" }