f702417655
It's enough to have at least one good constraint. Note that the whole algorithm can be a bit more general: we could check also Out<T>, In<T> and verify that T has good only lower constraint or upper constraint, but there are questions for types like Inv<Out<T>>, where T should have lower and upper constraints #KT-31514 Fixed
26 lines
1.1 KiB
Plaintext
Vendored
26 lines
1.1 KiB
Plaintext
Vendored
package
|
|
|
|
public fun </*0*/ T : Parent> consume(/*0*/ wrapper: Inv<T>): kotlin.Unit
|
|
public fun error(/*0*/ f: Inv<out Parent>, /*1*/ w: Inv<Child>): kotlin.Unit
|
|
public fun </*0*/ S> select(/*0*/ x: S, /*1*/ y: S): S
|
|
public fun </*0*/ K : Parent> wrapper(): Inv<K>
|
|
|
|
public object Child : Parent {
|
|
private constructor Child()
|
|
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 interface 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 interface Parent {
|
|
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
|
|
}
|