blob: 8724818b5f669bfc4d8631a09c3aa9d005ccddf0 [file]
class OutPair<out X, out Y>
class In<in Z>
interface A {
fun foo1(x: OutPair<String, Int>)
fun foo2(x: OutPair<CharSequence, Int>)
fun foo3(x: In<String>)
fun foo4(x: In<Any>)
var prop1: OutPair<String, Int>
}
// method: A::foo1
// generic signature: (LOutPair<Ljava/lang/String;Ljava/lang/Integer;>;)V
// method: A::foo2
// generic signature: (LOutPair<+Ljava/lang/CharSequence;Ljava/lang/Integer;>;)V
// method: A::foo3
// generic signature: (LIn<-Ljava/lang/String;>;)V
// method: A::foo4
// generic signature: (LIn<Ljava/lang/Object;>;)V
// method: A::getProp1
// generic signature: ()LOutPair<Ljava/lang/String;Ljava/lang/Integer;>;
// method: A::setProp1
// generic signature: (LOutPair<Ljava/lang/String;Ljava/lang/Integer;>;)V
abstract class B : A {
override final fun foo1(x: OutPair<String, Int>) {}
override final fun foo2(x: OutPair<CharSequence, Int>) {}
override final fun foo3(x: In<String>) {}
override final fun foo4(x: In<Any>) {}
override final var prop1: OutPair<String, Int> = null!!
}
// method: B::foo1
// generic signature: (LOutPair<Ljava/lang/String;Ljava/lang/Integer;>;)V
// method: B::foo2
// generic signature: (LOutPair<+Ljava/lang/CharSequence;Ljava/lang/Integer;>;)V
// method: B::foo3
// generic signature: (LIn<-Ljava/lang/String;>;)V
// method: B::foo4
// generic signature: (LIn<Ljava/lang/Object;>;)V
// method: B::getProp1
// generic signature: ()LOutPair<Ljava/lang/String;Ljava/lang/Integer;>;
// method: A::setProp1
// generic signature: (LOutPair<Ljava/lang/String;Ljava/lang/Integer;>;)V