class Inv class Out class OutPair class In class Final open class Open class Container { // The signatures are obtained from compiler/testData/writeSignature/declarationSiteVariance/wildcardOptimization fun openClassArgument(x: Out, y: In) {} fun finalClassArgument(x: Out, y: In) {} fun oneArgumentFinal(x: OutPair) {} fun arrayOfOutOpen(x: Array>) {} fun arrayOfOutFinal(x: Array>) {} fun outOfArrayOpen(x: Out>) {} fun outOfArrayOutOpen(x: Out>) {} fun deepOpen(x: Out>>) {} fun deepFinal(x: Out>>) {} fun skipAllOutInvWildcards(): Inv>>> = null!! fun skipAllInvWildcards(): Inv>> = null!! fun notDeepIn(): In = null!! fun skipWildcardsUntilIn0(): Out>> = null!! fun skipWildcardsUntilIn1(): Out>> = null!! fun skipWildcardsUntilIn2(): Out>>> = null!! fun skipWildcardsUntilInProjection(): Inv> = null!! fun outIn(x: Out>) {} fun outInAny(x: Out>) {} fun invInv(x: Out>) {} fun invOut(x: Out>) {} fun invOutFinal(x: Out>) {} fun invIn(x: Out>) {} fun invInAny(x: Out>) {} fun inFinal(x: In) {} fun inAny(x: In) {} fun inOutFinal(x: In>) {} fun invOpen(x: Inv) {} fun invFinal(x: Inv) {} fun invOutOpen(x: Inv>) {} fun invOutFinal(x: Inv>) {} fun invInOutOpen(x: Inv>>) {} fun invInOutFinal(x: Inv>>) {} fun invOutProjectedOutFinal(x: Inv>) {} fun typeParameter(x: Out, y: In) {} }