| 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 |