Files
kotlin/compiler/testData/writeSignature/declarationSiteVariance/wildcardOptimization/topLevelInv.kt
Denis Zharkov 154657a374 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
2015-12-15 16:18:31 +03:00

34 lines
958 B
Kotlin
Vendored

class Inv<X>
class In<in E>
class Out<out T>
class Final
open class Open
fun invOpen(x: Inv<Open>) {}
// method: TopLevelInvKt::invOpen
// generic signature: (LInv<LOpen;>;)V
fun invFinal(x: Inv<Final>) {}
// method: TopLevelInvKt::invFinal
// generic signature: (LInv<LFinal;>;)V
fun invOutOpen(x: Inv<Out<Open>>) {}
// method: TopLevelInvKt::invOutOpen
// 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