517688e163
Before fix only one level of type arguments was used to determine variance of type variable to find out direction requirements. This incorrect in general case, because outer variance affects subtyping deductions, for example: Inv<Out<A>> <: Inv<Out<B>> => A <: B; B <: A, despite A and B are in covariant position if only one level is considered ^KT-36233 Fixed
20 lines
824 B
Plaintext
Vendored
20 lines
824 B
Plaintext
Vendored
package
|
|
|
|
public fun </*0*/ K> invOut(/*0*/ y: K?): Inv<Out<K>>
|
|
public fun </*0*/ R> test(/*0*/ x: Inv<Out<R>>): R
|
|
public fun testNothing(): kotlin.Unit
|
|
|
|
public final class Inv</*0*/ T> {
|
|
public constructor Inv</*0*/ T>()
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
public final class Out</*0*/ out T> {
|
|
public constructor Out</*0*/ out T>()
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|