Fix wildcards for invariant arguments
See test with Java, we want preserve the invariant that if return type and value parameter types are same in Kotlin, than we can use such return-value as argument for that parameter
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@ open class Open
|
||||
|
||||
fun arrayOfOutOpen(x: Array<Out<Open>>) {}
|
||||
// method: ArraysKt::arrayOfOutOpen
|
||||
// generic signature: ([LOut<+LOpen;>;)V
|
||||
// generic signature: ([LOut<LOpen;>;)V
|
||||
|
||||
fun arrayOfOutFinal(x: Array<Out<Final>>) {}
|
||||
// method: ArraysKt::arrayOfOutFinal
|
||||
|
||||
Vendored
+4
@@ -10,6 +10,10 @@ fun skipAllOutInvWildcards(): Inv<OutPair<Open, Out<Out<Open>>>> = null!!
|
||||
// method: FinalReturnTypeKt::skipAllOutInvWildcards
|
||||
// generic signature: ()LInv<LOutPair<LOpen;LOut<LOut<LOpen;>;>;>;>;
|
||||
|
||||
fun skipAllInvWildcards(): Inv<In<Out<Open>>> = null!!
|
||||
// method: FinalReturnTypeKt::skipAllInvWildcards
|
||||
// generic signature: ()LInv<LIn<LOut<+LOpen;>;>;>;
|
||||
|
||||
fun notDeepIn(): In<Final> = null!!
|
||||
// method: FinalReturnTypeKt::notDeepIn
|
||||
// generic signature: ()LIn<LFinal;>;
|
||||
|
||||
Vendored
+10
-1
@@ -1,4 +1,5 @@
|
||||
class Inv<X>
|
||||
class In<in E>
|
||||
class Out<out T>
|
||||
class Final
|
||||
open class Open
|
||||
@@ -13,12 +14,20 @@ fun invFinal(x: Inv<Final>) {}
|
||||
|
||||
fun invOutOpen(x: Inv<Out<Open>>) {}
|
||||
// method: TopLevelInvKt::invOutOpen
|
||||
// generic signature: (LInv<LOut<+LOpen;>;>;)V
|
||||
// generic signature: (LInv<LOut<LOpen;>;>;)V
|
||||
|
||||
fun invOutFinal(x: Inv<Out<Final>>) {}
|
||||
// method: TopLevelInvKt::invOutFinal
|
||||
// generic signature: (LInv<LOut<LFinal;>;>;)V
|
||||
|
||||
fun invInOutOpen(x: Inv<In<Out<Open>>>) {}
|
||||
// method: TopLevelInvKt::invInOutOpen
|
||||
// generic signature: (LInv<LIn<LOut<+LOpen;>;>;>;)V
|
||||
|
||||
fun invInOutFinal(x: Inv<In<Out<Final>>>) {}
|
||||
// method: TopLevelInvKt::invInOutFinal
|
||||
// generic signature: (LInv<LIn<LOut<LFinal;>;>;>;)V
|
||||
|
||||
fun invOutProjectedOutFinal(x: Inv<out Out<Final>>) {}
|
||||
// method: TopLevelInvKt::invOutProjectedOutFinal
|
||||
// generic signature: (LInv<+LOut<LFinal;>;>;)V
|
||||
|
||||
Reference in New Issue
Block a user