Added Variance tests
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
trait In<in T>
|
||||
trait Out<out T>
|
||||
trait Inv<T>
|
||||
|
||||
trait TypeBounds1<in I, out O, P, X : <!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>I<!>>
|
||||
trait TypeBounds2<in I, out O, P, X : O>
|
||||
trait TypeBounds3<in I, out O, P, X : P>
|
||||
trait TypeBounds4<in I, out O, P, X : In<I>>
|
||||
trait TypeBounds5<in I, out O, P, X : In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>O<!>>>
|
||||
|
||||
trait WhereTypeBounds1<in I, out O, P, X> where X : <!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>I<!>
|
||||
trait WhereTypeBounds2<in I, out O, P, X> where X : O
|
||||
trait WhereTypeBounds3<in I, out O, P, X> where X : P
|
||||
trait WhereTypeBounds4<in I, out O, P, X> where X : In<I>
|
||||
trait WhereTypeBounds5<in I, out O, P, X> where X : In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>O<!>>
|
||||
|
||||
class SubClass1<in I, out O, P> : Out<<!TYPE_VARIANCE_CONFLICT(I; in; out; Out<I>)!>I<!>>
|
||||
class SubClass2<in I, out O, P> : Out<O>
|
||||
class SubClass3<in I, out O, P> : Out<P>
|
||||
class SubClass4<in I, out O, P> : In<I>
|
||||
class SubClass5<in I, out O, P> : In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>O<!>>
|
||||
class SubClass6<in I, out O, P> : Inv<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; Inv<O>)!>O<!>>
|
||||
class SubClass7<in I, out O, P> : Inv<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Inv<I>)!>I<!>>
|
||||
@@ -0,0 +1,128 @@
|
||||
package
|
||||
|
||||
internal trait In</*0*/ in 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal final class SubClass1</*0*/ in I, /*1*/ out O, /*2*/ P> : Out<I> {
|
||||
public constructor SubClass1</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
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
|
||||
}
|
||||
|
||||
internal final class SubClass2</*0*/ in I, /*1*/ out O, /*2*/ P> : Out<O> {
|
||||
public constructor SubClass2</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
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
|
||||
}
|
||||
|
||||
internal final class SubClass3</*0*/ in I, /*1*/ out O, /*2*/ P> : Out<P> {
|
||||
public constructor SubClass3</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
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
|
||||
}
|
||||
|
||||
internal final class SubClass4</*0*/ in I, /*1*/ out O, /*2*/ P> : In<I> {
|
||||
public constructor SubClass4</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
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
|
||||
}
|
||||
|
||||
internal final class SubClass5</*0*/ in I, /*1*/ out O, /*2*/ P> : In<O> {
|
||||
public constructor SubClass5</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
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
|
||||
}
|
||||
|
||||
internal final class SubClass6</*0*/ in I, /*1*/ out O, /*2*/ P> : Inv<O> {
|
||||
public constructor SubClass6</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
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
|
||||
}
|
||||
|
||||
internal final class SubClass7</*0*/ in I, /*1*/ out O, /*2*/ P> : Inv<I> {
|
||||
public constructor SubClass7</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
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
|
||||
}
|
||||
|
||||
internal trait TypeBounds1</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : I> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait TypeBounds2</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : O> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait TypeBounds3</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : P> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait TypeBounds4</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : In<I>> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait TypeBounds5</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : In<O>> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait WhereTypeBounds1</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : I> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait WhereTypeBounds2</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : O> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait WhereTypeBounds3</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : P> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait WhereTypeBounds4</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : In<I>> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait WhereTypeBounds5</*0*/ in I, /*1*/ out O, /*2*/ P, /*3*/ X : In<O>> {
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
trait In<in T>
|
||||
trait Out<out T>
|
||||
trait Inv<T>
|
||||
fun <T> getT(): T = null!!
|
||||
|
||||
trait Test<in I, out O, P> {
|
||||
fun parameters1(i: I, o: <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>, p: P)
|
||||
fun parameters2(i: In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>)
|
||||
fun parameters3(i: In<O>)
|
||||
|
||||
fun explicitReturnType1() : <!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>I<!>
|
||||
fun explicitReturnType2() : O
|
||||
fun explicitReturnType3() : P
|
||||
fun explicitReturnType4() : In<I>
|
||||
fun explicitReturnType5() : In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>O<!>>
|
||||
|
||||
<!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>fun imlicitReturnType1()<!> = getT<I>()
|
||||
fun imlicitReturnType2() = getT<O>()
|
||||
fun imlicitReturnType3() = getT<P>()
|
||||
fun imlicitReturnType4() = getT<In<I>>()
|
||||
<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>fun imlicitReturnType5()<!> = getT<In<O>>()
|
||||
|
||||
fun I.receiver1()
|
||||
fun <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>.receiver2()
|
||||
fun P.receiver3()
|
||||
fun In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>.receiver4()
|
||||
fun In<O>.receiver5()
|
||||
|
||||
fun <X : I> typeParameter1()
|
||||
fun <X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>> typeParameter2()
|
||||
fun <X : P> typeParameter3()
|
||||
fun <X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>> typeParameter4()
|
||||
fun <X : In<O>> typeParameter5()
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package
|
||||
|
||||
internal fun </*0*/ T> getT(): T
|
||||
|
||||
internal trait In</*0*/ in 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal abstract fun explicitReturnType1(): I
|
||||
internal abstract fun explicitReturnType2(): O
|
||||
internal abstract fun explicitReturnType3(): P
|
||||
internal abstract fun explicitReturnType4(): In<I>
|
||||
internal abstract fun explicitReturnType5(): In<O>
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal open fun imlicitReturnType1(): I
|
||||
internal open fun imlicitReturnType2(): O
|
||||
internal open fun imlicitReturnType3(): P
|
||||
internal open fun imlicitReturnType4(): In<I>
|
||||
internal open fun imlicitReturnType5(): In<O>
|
||||
internal abstract fun parameters1(/*0*/ i: I, /*1*/ o: O, /*2*/ p: P): kotlin.Unit
|
||||
internal abstract fun parameters2(/*0*/ i: In<I>): kotlin.Unit
|
||||
internal abstract fun parameters3(/*0*/ i: In<O>): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
internal abstract fun </*0*/ X : I> typeParameter1(): kotlin.Unit
|
||||
internal abstract fun </*0*/ X : O> typeParameter2(): kotlin.Unit
|
||||
internal abstract fun </*0*/ X : P> typeParameter3(): kotlin.Unit
|
||||
internal abstract fun </*0*/ X : In<I>> typeParameter4(): kotlin.Unit
|
||||
internal abstract fun </*0*/ X : In<O>> typeParameter5(): kotlin.Unit
|
||||
internal abstract fun I.receiver1(): kotlin.Unit
|
||||
internal abstract fun O.receiver2(): kotlin.Unit
|
||||
internal abstract fun P.receiver3(): kotlin.Unit
|
||||
internal abstract fun In<I>.receiver4(): kotlin.Unit
|
||||
internal abstract fun In<O>.receiver5(): kotlin.Unit
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
trait In<in T>
|
||||
trait Out<out T>
|
||||
trait Inv<T>
|
||||
trait Pair<out X, out Y>
|
||||
|
||||
trait Test<in I, out O, P> {
|
||||
fun ok1(i: I)
|
||||
fun ok2(i: In<O>)
|
||||
fun ok3(i: In<In<I>>)
|
||||
fun ok4(i: Inv<P>)
|
||||
fun ok5(i: P)
|
||||
fun ok6(i: Out<I>)
|
||||
fun ok7(i: Out<Out<I>>)
|
||||
fun ok8(i: Out<In<O>>)
|
||||
fun ok9(i: Out<In<P>>)
|
||||
fun Ok10(i: I)
|
||||
fun Ok11(i: In<O>)
|
||||
fun Ok12(i: In<In<I>>)
|
||||
fun Ok13(i: Out<I>)
|
||||
fun Ok14(i: Pair<In<O>, I>)
|
||||
fun Ok15(i: Inv<out I>)
|
||||
|
||||
fun Ok20(i: Inv<in O>)
|
||||
fun Ok21(i: Inv<in P>)
|
||||
fun Ok22(i: Inv<out I>)
|
||||
fun Ok23(i: Inv<out P>)
|
||||
|
||||
fun neOk1(i: <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>)
|
||||
fun neOk2(i: In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>)
|
||||
fun neOk3(i: In<In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<In<O>>)!>O<!>>>)
|
||||
fun neOk4(i: Inv<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Inv<I>)!>I<!>>)
|
||||
fun neOk5(i: Inv<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; Inv<O>)!>O<!>>)
|
||||
fun neOk6(i: In<In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<In<O>>)!>O<!>>>)
|
||||
fun neOk7(i: Pair<In<<!TYPE_VARIANCE_CONFLICT(I; in; out; Pair<In<I>, O>)!>I<!>>, <!TYPE_VARIANCE_CONFLICT(O; out; in; Pair<In<I>, O>)!>O<!>>)
|
||||
fun neOk8(i: Inv<out <!TYPE_VARIANCE_CONFLICT(O; out; in; Inv<out O>)!>O<!>>)
|
||||
fun neOk9(i: In<<!CONFLICTING_PROJECTION!>out<!> P>)
|
||||
fun neOk10(i: Out<<!TYPE_VARIANCE_CONFLICT(O; out; in; Out<O>)!>O<!>>)
|
||||
|
||||
fun neOk11(i: Inv<in <!TYPE_VARIANCE_CONFLICT(I; in; out; Inv<in I>)!>I<!>>)
|
||||
fun neOk12(i: Inv<out <!TYPE_VARIANCE_CONFLICT(O; out; in; Inv<out O>)!>O<!>>)
|
||||
|
||||
fun neOk30(i: Pair<<!TYPE_VARIANCE_CONFLICT(O; out; in; Pair<O, [ERROR : No type element]>)!>O<!>, <!SYNTAX!><!>>)
|
||||
fun neOk31(i: Pair<<!TYPE_VARIANCE_CONFLICT(O; out; in; Pair<O, [ERROR : Inv]>)!>O<!>, <!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Inv<!>>)
|
||||
fun neOk32(i: <!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Inv<!>)
|
||||
fun neOk33(i: Inv<<!SYNTAX!><!>>)
|
||||
fun neOk34(i: Inv<<!UNRESOLVED_REFERENCE!>C<!>>)
|
||||
fun neOk35(i: Inv<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!><P, P><!>)
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package
|
||||
|
||||
internal trait In</*0*/ in 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait Pair</*0*/ out X, /*1*/ out Y> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
internal abstract fun Ok10(/*0*/ i: I): kotlin.Unit
|
||||
internal abstract fun Ok11(/*0*/ i: In<O>): kotlin.Unit
|
||||
internal abstract fun Ok12(/*0*/ i: In<In<I>>): kotlin.Unit
|
||||
internal abstract fun Ok13(/*0*/ i: Out<I>): kotlin.Unit
|
||||
internal abstract fun Ok14(/*0*/ i: Pair<In<O>, I>): kotlin.Unit
|
||||
internal abstract fun Ok15(/*0*/ i: Inv<out I>): kotlin.Unit
|
||||
internal abstract fun Ok20(/*0*/ i: Inv<in O>): kotlin.Unit
|
||||
internal abstract fun Ok21(/*0*/ i: Inv<in P>): kotlin.Unit
|
||||
internal abstract fun Ok22(/*0*/ i: Inv<out I>): kotlin.Unit
|
||||
internal abstract fun Ok23(/*0*/ i: Inv<out P>): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal abstract fun neOk1(/*0*/ i: O): kotlin.Unit
|
||||
internal abstract fun neOk10(/*0*/ i: Out<O>): kotlin.Unit
|
||||
internal abstract fun neOk11(/*0*/ i: Inv<in I>): kotlin.Unit
|
||||
internal abstract fun neOk12(/*0*/ i: Inv<out O>): kotlin.Unit
|
||||
internal abstract fun neOk2(/*0*/ i: In<I>): kotlin.Unit
|
||||
internal abstract fun neOk3(/*0*/ i: In<In<O>>): kotlin.Unit
|
||||
internal abstract fun neOk30(/*0*/ i: Pair<O, [ERROR : No type element]>): kotlin.Unit
|
||||
internal abstract fun neOk31(/*0*/ i: Pair<O, [ERROR : Inv]>): kotlin.Unit
|
||||
internal abstract fun neOk32(/*0*/ i: [ERROR : Inv]): kotlin.Unit
|
||||
internal abstract fun neOk33(/*0*/ i: Inv<[ERROR : No type element]>): kotlin.Unit
|
||||
internal abstract fun neOk34(/*0*/ i: Inv<[ERROR : C]>): kotlin.Unit
|
||||
internal abstract fun neOk35(/*0*/ i: [ERROR : Inv<P, P>]): kotlin.Unit
|
||||
internal abstract fun neOk4(/*0*/ i: Inv<I>): kotlin.Unit
|
||||
internal abstract fun neOk5(/*0*/ i: Inv<O>): kotlin.Unit
|
||||
internal abstract fun neOk6(/*0*/ i: In<In<O>>): kotlin.Unit
|
||||
internal abstract fun neOk7(/*0*/ i: Pair<In<I>, O>): kotlin.Unit
|
||||
internal abstract fun neOk8(/*0*/ i: Inv<out O>): kotlin.Unit
|
||||
internal abstract fun neOk9(/*0*/ i: In<out P>): kotlin.Unit
|
||||
internal abstract fun ok1(/*0*/ i: I): kotlin.Unit
|
||||
internal abstract fun ok2(/*0*/ i: In<O>): kotlin.Unit
|
||||
internal abstract fun ok3(/*0*/ i: In<In<I>>): kotlin.Unit
|
||||
internal abstract fun ok4(/*0*/ i: Inv<P>): kotlin.Unit
|
||||
internal abstract fun ok5(/*0*/ i: P): kotlin.Unit
|
||||
internal abstract fun ok6(/*0*/ i: Out<I>): kotlin.Unit
|
||||
internal abstract fun ok7(/*0*/ i: Out<Out<I>>): kotlin.Unit
|
||||
internal abstract fun ok8(/*0*/ i: Out<In<O>>): kotlin.Unit
|
||||
internal abstract fun ok9(/*0*/ i: Out<In<P>>): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
trait In<in T>
|
||||
trait Out<out T>
|
||||
trait Inv<T>
|
||||
trait Pair<out X, out Y>
|
||||
|
||||
trait Test<in I, out O, P> {
|
||||
var ok1: Inv<P>
|
||||
var ok2: P
|
||||
var ok3: Out<In<P>>
|
||||
var ok4: Pair<In<P>, Out<P>>
|
||||
var ok5: Inv<out P>
|
||||
var ok6: Inv<in P>
|
||||
var ok7: Inv<out P>
|
||||
|
||||
var neOk1: <!TYPE_VARIANCE_CONFLICT(O; out; invariant; O)!>O<!>
|
||||
var neOk2: In<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; In<I>)!>I<!>>
|
||||
var neOk3: In<In<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; In<In<O>>)!>O<!>>>
|
||||
var neOk4: Inv<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Inv<I>)!>I<!>>
|
||||
var neOk5: Inv<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; Inv<O>)!>O<!>>
|
||||
var neOk6: In<In<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; In<In<O>>)!>O<!>>>
|
||||
var neOk7: Pair<In<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Pair<In<I>, O>)!>I<!>>, <!TYPE_VARIANCE_CONFLICT(O; out; invariant; Pair<In<I>, O>)!>O<!>>
|
||||
var neOk8: Inv<in <!TYPE_VARIANCE_CONFLICT(O; out; invariant; Inv<in O>)!>O<!>>
|
||||
var neOk9: Inv<in <!TYPE_VARIANCE_CONFLICT(I; in; invariant; Inv<in I>)!>I<!>>
|
||||
var neOk10: In<<!CONFLICTING_PROJECTION!>out<!> I>
|
||||
|
||||
var neOk11: <!TYPE_VARIANCE_CONFLICT(I; in; invariant; I)!>I<!>
|
||||
var neOk12: In<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; In<O>)!>O<!>>
|
||||
var neOk13: In<In<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; In<In<I>>)!>I<!>>>
|
||||
var neOk14: Out<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Out<I>)!>I<!>>
|
||||
var neOk15: Out<Out<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Out<Out<I>>)!>I<!>>>
|
||||
var neOk16: Out<In<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; Out<In<O>>)!>O<!>>>
|
||||
var neOk17: Pair<In<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; Pair<In<O>, I>)!>O<!>>, <!TYPE_VARIANCE_CONFLICT(I; in; invariant; Pair<In<O>, I>)!>I<!>>
|
||||
|
||||
var neOk20: Inv<in <!TYPE_VARIANCE_CONFLICT(O; out; invariant; Inv<in O>)!>O<!>>
|
||||
var neOk21: Inv<in <!TYPE_VARIANCE_CONFLICT(I; in; invariant; Inv<in I>)!>I<!>>
|
||||
var neOk22: Inv<out <!TYPE_VARIANCE_CONFLICT(O; out; invariant; Inv<out O>)!>O<!>>
|
||||
var neOk23: Inv<out <!TYPE_VARIANCE_CONFLICT(I; in; invariant; Inv<out I>)!>I<!>>
|
||||
|
||||
var neOk30: Pair<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Pair<I, [ERROR : No type element]>)!>I<!>, <!SYNTAX!><!>>
|
||||
var neOk31: Pair<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Pair<I, [ERROR : Inv]>)!>I<!>, <!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Inv<!>>
|
||||
var neOk32: <!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Inv<!>
|
||||
var neOk33: Inv<<!SYNTAX!><!>>
|
||||
var neOk34: Inv<<!UNRESOLVED_REFERENCE!>C<!>>
|
||||
var neOk35: Inv<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!><P, P><!>
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package
|
||||
|
||||
internal trait In</*0*/ in 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait Pair</*0*/ out X, /*1*/ out Y> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
internal abstract var neOk1: O
|
||||
internal abstract var neOk10: In<out I>
|
||||
internal abstract var neOk11: I
|
||||
internal abstract var neOk12: In<O>
|
||||
internal abstract var neOk13: In<In<I>>
|
||||
internal abstract var neOk14: Out<I>
|
||||
internal abstract var neOk15: Out<Out<I>>
|
||||
internal abstract var neOk16: Out<In<O>>
|
||||
internal abstract var neOk17: Pair<In<O>, I>
|
||||
internal abstract var neOk2: In<I>
|
||||
internal abstract var neOk20: Inv<in O>
|
||||
internal abstract var neOk21: Inv<in I>
|
||||
internal abstract var neOk22: Inv<out O>
|
||||
internal abstract var neOk23: Inv<out I>
|
||||
internal abstract var neOk3: In<In<O>>
|
||||
internal abstract var neOk30: Pair<I, [ERROR : No type element]>
|
||||
internal abstract var neOk31: Pair<I, [ERROR : Inv]>
|
||||
internal abstract var neOk32: [ERROR : Inv]
|
||||
internal abstract var neOk33: Inv<[ERROR : No type element]>
|
||||
internal abstract var neOk34: Inv<[ERROR : C]>
|
||||
internal abstract var neOk35: [ERROR : Inv<P, P>]
|
||||
internal abstract var neOk4: Inv<I>
|
||||
internal abstract var neOk5: Inv<O>
|
||||
internal abstract var neOk6: In<In<O>>
|
||||
internal abstract var neOk7: Pair<In<I>, O>
|
||||
internal abstract var neOk8: Inv<in O>
|
||||
internal abstract var neOk9: Inv<in I>
|
||||
internal abstract var ok1: Inv<P>
|
||||
internal abstract var ok2: P
|
||||
internal abstract var ok3: Out<In<P>>
|
||||
internal abstract var ok4: Pair<In<P>, Out<P>>
|
||||
internal abstract var ok5: Inv<out P>
|
||||
internal abstract var ok6: Inv<in P>
|
||||
internal abstract var ok7: Inv<out P>
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
trait In<in T>
|
||||
trait Out<out T>
|
||||
trait Inv<T>
|
||||
trait Pair<out X, out Y>
|
||||
|
||||
trait Test<in I, out O, P> {
|
||||
fun ok1(): O
|
||||
fun ok2(): In<I>
|
||||
fun ok3(): In<In<O>>
|
||||
fun ok4(): Inv<P>
|
||||
fun ok5(): P
|
||||
fun ok6(): Out<O>
|
||||
fun ok7(): Out<P>
|
||||
fun ok8(): Out<In<P>>
|
||||
fun ok9(): Pair<In<I>, O>
|
||||
|
||||
fun ok10(): Inv<in I>
|
||||
fun ok11(): Inv<out O>
|
||||
fun ok12(): Inv<in P>
|
||||
fun ok13(): Inv<out P>
|
||||
|
||||
fun neOk1(): <!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>I<!>
|
||||
fun neOk2(): In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>O<!>>
|
||||
fun neOk3(): In<In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<In<I>>)!>I<!>>>
|
||||
fun neOk4(): Inv<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; Inv<I>)!>I<!>>
|
||||
fun neOk5(): Inv<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; Inv<O>)!>O<!>>
|
||||
fun neOk6(): Pair<In<<!TYPE_VARIANCE_CONFLICT(O; out; in; Pair<In<O>, I>)!>O<!>>, <!TYPE_VARIANCE_CONFLICT(I; in; out; Pair<In<O>, I>)!>I<!>>
|
||||
fun neOk7(): Inv<in <!TYPE_VARIANCE_CONFLICT(O; out; in; Inv<in O>)!>O<!>>
|
||||
fun neOk8(): Out<<!CONFLICTING_PROJECTION(Out)!>in<!> I>
|
||||
|
||||
fun neOk10(): Inv<in <!TYPE_VARIANCE_CONFLICT(O; out; in; Inv<in O>)!>O<!>>
|
||||
fun neOk11(): Inv<out <!TYPE_VARIANCE_CONFLICT(I; in; out; Inv<out I>)!>I<!>>
|
||||
|
||||
fun neOk30(): Pair<<!TYPE_VARIANCE_CONFLICT(I; in; out; Pair<I, [ERROR : No type element]>)!>I<!>, <!SYNTAX!><!>>
|
||||
fun neOk31(): Pair<<!TYPE_VARIANCE_CONFLICT(I; in; out; Pair<I, [ERROR : Inv]>)!>I<!>, <!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Inv<!>>
|
||||
fun neOk32(): <!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Inv<!>
|
||||
fun neOk33(): Inv<<!SYNTAX!><!>>
|
||||
fun neOk34(): Inv<<!UNRESOLVED_REFERENCE!>C<!>>
|
||||
fun neOk35(): Inv<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!><P, P><!>
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package
|
||||
|
||||
internal trait In</*0*/ in 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait Pair</*0*/ out X, /*1*/ out Y> {
|
||||
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
|
||||
}
|
||||
|
||||
internal trait Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal abstract fun neOk1(): I
|
||||
internal abstract fun neOk10(): Inv<in O>
|
||||
internal abstract fun neOk11(): Inv<out I>
|
||||
internal abstract fun neOk2(): In<O>
|
||||
internal abstract fun neOk3(): In<In<I>>
|
||||
internal abstract fun neOk30(): Pair<I, [ERROR : No type element]>
|
||||
internal abstract fun neOk31(): Pair<I, [ERROR : Inv]>
|
||||
internal abstract fun neOk32(): [ERROR : Inv]
|
||||
internal abstract fun neOk33(): Inv<[ERROR : No type element]>
|
||||
internal abstract fun neOk34(): Inv<[ERROR : C]>
|
||||
internal abstract fun neOk35(): [ERROR : Inv<P, P>]
|
||||
internal abstract fun neOk4(): Inv<I>
|
||||
internal abstract fun neOk5(): Inv<O>
|
||||
internal abstract fun neOk6(): Pair<In<O>, I>
|
||||
internal abstract fun neOk7(): Inv<in O>
|
||||
internal abstract fun neOk8(): Out<in I>
|
||||
internal abstract fun ok1(): O
|
||||
internal abstract fun ok10(): Inv<in I>
|
||||
internal abstract fun ok11(): Inv<out O>
|
||||
internal abstract fun ok12(): Inv<in P>
|
||||
internal abstract fun ok13(): Inv<out P>
|
||||
internal abstract fun ok2(): In<I>
|
||||
internal abstract fun ok3(): In<In<O>>
|
||||
internal abstract fun ok4(): Inv<P>
|
||||
internal abstract fun ok5(): P
|
||||
internal abstract fun ok6(): Out<O>
|
||||
internal abstract fun ok7(): Out<P>
|
||||
internal abstract fun ok8(): Out<In<P>>
|
||||
internal abstract fun ok9(): Pair<In<I>, O>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
trait In<in T>
|
||||
trait Out<out T>
|
||||
trait Inv<T>
|
||||
|
||||
fun <T> getT(): T = null!!
|
||||
|
||||
class Test<in I, out O, P>(
|
||||
val type1: <!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>I<!>,
|
||||
val type2: O,
|
||||
val type3: P,
|
||||
val type4: In<I>,
|
||||
val type5: In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>O<!>>,
|
||||
|
||||
var type6: <!TYPE_VARIANCE_CONFLICT(I; in; invariant; I)!>I<!>,
|
||||
var type7: <!TYPE_VARIANCE_CONFLICT(O; out; invariant; O)!>O<!>,
|
||||
var type8: P,
|
||||
var type9: In<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; In<I>)!>I<!>>,
|
||||
var type0: In<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; In<O>)!>O<!>>,
|
||||
|
||||
type11: I,
|
||||
type12: O,
|
||||
type13: P,
|
||||
type14: In<I>,
|
||||
type15: In<O>
|
||||
)
|
||||
@@ -0,0 +1,38 @@
|
||||
package
|
||||
|
||||
internal fun </*0*/ T> getT(): T
|
||||
|
||||
internal trait In</*0*/ in 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal final class Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
public constructor Test</*0*/ in I, /*1*/ out O, /*2*/ P>(/*0*/ type1: I, /*1*/ type2: O, /*2*/ type3: P, /*3*/ type4: In<I>, /*4*/ type5: In<O>, /*5*/ type6: I, /*6*/ type7: O, /*7*/ type8: P, /*8*/ type9: In<I>, /*9*/ type0: In<O>, /*10*/ type11: I, /*11*/ type12: O, /*12*/ type13: P, /*13*/ type14: In<I>, /*14*/ type15: In<O>)
|
||||
internal final var type0: In<O>
|
||||
internal final val type1: I
|
||||
internal final val type2: O
|
||||
internal final val type3: P
|
||||
internal final val type4: In<I>
|
||||
internal final val type5: In<O>
|
||||
internal final var type6: I
|
||||
internal final var type7: O
|
||||
internal final var type8: P
|
||||
internal final var type9: In<I>
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
trait In<in T>
|
||||
trait Out<out T>
|
||||
trait Inv<T>
|
||||
|
||||
class Delegate<T> {
|
||||
fun get(<!UNUSED_PARAMETER(t)!>t<!>: Any, <!UNUSED_PARAMETER(p)!>p<!>: PropertyMetadata): T = null!!
|
||||
fun set(<!UNUSED_PARAMETER(t)!>t<!>: Any, <!UNUSED_PARAMETER(p)!>p<!>: PropertyMetadata, <!UNUSED_PARAMETER(value)!>value<!>: T) {}
|
||||
}
|
||||
|
||||
fun <T> getT(): T = null!!
|
||||
|
||||
abstract class Test<in I, out O, P> {
|
||||
abstract val type1: <!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>I<!>
|
||||
abstract val type2: O
|
||||
abstract val type3: P
|
||||
abstract val type4: In<I>
|
||||
abstract val type5: In<<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>O<!>>
|
||||
|
||||
<!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>val implicitType1<!> = getT<I>()
|
||||
val implicitType2 = getT<O>()
|
||||
val implicitType3 = getT<P>()
|
||||
val implicitType4 = getT<In<I>>()
|
||||
<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>val implicitType5<!> = getT<In<O>>()
|
||||
|
||||
<!TYPE_VARIANCE_CONFLICT(I; in; out; I)!>val delegateType1<!> by Delegate<I>()
|
||||
val delegateType2 by Delegate<O>()
|
||||
val delegateType3 by Delegate<P>()
|
||||
val delegateType4 by Delegate<In<I>>()
|
||||
<!TYPE_VARIANCE_CONFLICT(O; out; in; In<O>)!>val delegateType5<!> by Delegate<In<O>>()
|
||||
|
||||
abstract val I.receiver1: Int
|
||||
abstract val <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>.receiver2: Int
|
||||
abstract val P.receiver3: Int
|
||||
abstract val In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>.receiver4: Int
|
||||
abstract val In<O>.receiver5: Int
|
||||
|
||||
val <X : I> typeParameter1 = 8
|
||||
val <X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>> typeParameter2 = 13
|
||||
val <X : P> typeParameter3 = 21
|
||||
val <X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>> typeParameter4 = 34
|
||||
val <X : In<O>> typeParameter5 = 55
|
||||
|
||||
val <X> typeParameter6 where X : I = 1
|
||||
val <X> typeParameter7 where X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!> = 1
|
||||
val <X> typeParameter8 where X : P = 2
|
||||
val <X> typeParameter9 where X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>> = 3
|
||||
val <X> typeParameter0 where X : In<O> = 5
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package
|
||||
|
||||
internal fun </*0*/ T> getT(): T
|
||||
|
||||
internal final class Delegate</*0*/ T> {
|
||||
public constructor Delegate</*0*/ T>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal final fun get(/*0*/ t: kotlin.Any, /*1*/ p: kotlin.PropertyMetadata): T
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal final fun set(/*0*/ t: kotlin.Any, /*1*/ p: kotlin.PropertyMetadata, /*2*/ value: T): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal trait In</*0*/ in 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal abstract class Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
public constructor Test</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
internal final val delegateType1: I
|
||||
internal final val delegateType2: O
|
||||
internal final val delegateType3: P
|
||||
internal final val delegateType4: In<I>
|
||||
internal final val delegateType5: In<O>
|
||||
internal final val implicitType1: I
|
||||
internal final val implicitType2: O
|
||||
internal final val implicitType3: P
|
||||
internal final val implicitType4: In<I>
|
||||
internal final val implicitType5: In<O>
|
||||
internal abstract val type1: I
|
||||
internal abstract val type2: O
|
||||
internal abstract val type3: P
|
||||
internal abstract val type4: In<I>
|
||||
internal abstract val type5: In<O>
|
||||
internal final val </*0*/ X : In<O>> typeParameter0: kotlin.Int = 5
|
||||
internal final val </*0*/ X : I> typeParameter1: kotlin.Int = 8
|
||||
internal final val </*0*/ X : O> typeParameter2: kotlin.Int = 13
|
||||
internal final val </*0*/ X : P> typeParameter3: kotlin.Int = 21
|
||||
internal final val </*0*/ X : In<I>> typeParameter4: kotlin.Int = 34
|
||||
internal final val </*0*/ X : In<O>> typeParameter5: kotlin.Int = 55
|
||||
internal final val </*0*/ X : I> typeParameter6: kotlin.Int = 1
|
||||
internal final val </*0*/ X : O> typeParameter7: kotlin.Int = 1
|
||||
internal final val </*0*/ X : P> typeParameter8: kotlin.Int = 2
|
||||
internal final val </*0*/ X : In<I>> typeParameter9: kotlin.Int = 3
|
||||
internal abstract val I.receiver1: kotlin.Int
|
||||
internal abstract val O.receiver2: kotlin.Int
|
||||
internal abstract val P.receiver3: kotlin.Int
|
||||
internal abstract val In<I>.receiver4: kotlin.Int
|
||||
internal abstract val In<O>.receiver5: kotlin.Int
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
trait In<in T>
|
||||
trait Out<out T>
|
||||
trait Inv<T>
|
||||
|
||||
class Delegate<T> {
|
||||
fun get(<!UNUSED_PARAMETER(t)!>t<!>: Any, <!UNUSED_PARAMETER(p)!>p<!>: PropertyMetadata): T = null!!
|
||||
fun set(<!UNUSED_PARAMETER(t)!>t<!>: Any, <!UNUSED_PARAMETER(p)!>p<!>: PropertyMetadata, <!UNUSED_PARAMETER(varue)!>varue<!>: T) {}
|
||||
}
|
||||
|
||||
fun <T> getT(): T = null!!
|
||||
|
||||
abstract class Test<in I, out O, P> {
|
||||
abstract var type1: <!TYPE_VARIANCE_CONFLICT(I; in; invariant; I)!>I<!>
|
||||
abstract var type2: <!TYPE_VARIANCE_CONFLICT(O; out; invariant; O)!>O<!>
|
||||
abstract var type3: P
|
||||
abstract var type4: In<<!TYPE_VARIANCE_CONFLICT(I; in; invariant; In<I>)!>I<!>>
|
||||
abstract var type5: In<<!TYPE_VARIANCE_CONFLICT(O; out; invariant; In<O>)!>O<!>>
|
||||
|
||||
<!TYPE_VARIANCE_CONFLICT(I; in; invariant; I)!>var implicitType1<!> = getT<I>()
|
||||
<!TYPE_VARIANCE_CONFLICT(O; out; invariant; O)!>var implicitType2<!> = getT<O>()
|
||||
var implicitType3 = getT<P>()
|
||||
<!TYPE_VARIANCE_CONFLICT(I; in; invariant; In<I>)!>var implicitType4<!> = getT<In<I>>()
|
||||
<!TYPE_VARIANCE_CONFLICT(O; out; invariant; In<O>)!>var implicitType5<!> = getT<In<O>>()
|
||||
|
||||
<!TYPE_VARIANCE_CONFLICT(I; in; invariant; I)!>var delegateType1<!> by Delegate<I>()
|
||||
<!TYPE_VARIANCE_CONFLICT(O; out; invariant; O)!>var delegateType2<!> by Delegate<O>()
|
||||
var delegateType3 by Delegate<P>()
|
||||
<!TYPE_VARIANCE_CONFLICT(I; in; invariant; In<I>)!>var delegateType4<!> by Delegate<In<I>>()
|
||||
<!TYPE_VARIANCE_CONFLICT(O; out; invariant; In<O>)!>var delegateType5<!> by Delegate<In<O>>()
|
||||
|
||||
abstract var I.receiver1: Int
|
||||
abstract var <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>.receiver2: Int
|
||||
abstract var P.receiver3: Int
|
||||
abstract var In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>.receiver4: Int
|
||||
abstract var In<O>.receiver5: Int
|
||||
|
||||
var <X : I> typeParameter1 = 8
|
||||
var <X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>> typeParameter2 = 13
|
||||
var <X : P> typeParameter3 = 21
|
||||
var <X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>> typeParameter4 = 34
|
||||
var <X : In<O>> typeParameter5 = 55
|
||||
|
||||
var <X> typeParameter6 where X : I = 1
|
||||
var <X> typeParameter7 where X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!> = 1
|
||||
var <X> typeParameter8 where X : P = 2
|
||||
var <X> typeParameter9 where X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>> = 3
|
||||
var <X> typeParameter0 where X : In<O> = 5
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package
|
||||
|
||||
internal fun </*0*/ T> getT(): T
|
||||
|
||||
internal final class Delegate</*0*/ T> {
|
||||
public constructor Delegate</*0*/ T>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal final fun get(/*0*/ t: kotlin.Any, /*1*/ p: kotlin.PropertyMetadata): T
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal final fun set(/*0*/ t: kotlin.Any, /*1*/ p: kotlin.PropertyMetadata, /*2*/ varue: T): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal trait In</*0*/ in 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal trait 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
|
||||
}
|
||||
|
||||
internal abstract class Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
public constructor Test</*0*/ in I, /*1*/ out O, /*2*/ P>()
|
||||
internal final var delegateType1: I
|
||||
internal final var delegateType2: O
|
||||
internal final var delegateType3: P
|
||||
internal final var delegateType4: In<I>
|
||||
internal final var delegateType5: In<O>
|
||||
internal final var implicitType1: I
|
||||
internal final var implicitType2: O
|
||||
internal final var implicitType3: P
|
||||
internal final var implicitType4: In<I>
|
||||
internal final var implicitType5: In<O>
|
||||
internal abstract var type1: I
|
||||
internal abstract var type2: O
|
||||
internal abstract var type3: P
|
||||
internal abstract var type4: In<I>
|
||||
internal abstract var type5: In<O>
|
||||
internal final var </*0*/ X : In<O>> typeParameter0: kotlin.Int
|
||||
internal final var </*0*/ X : I> typeParameter1: kotlin.Int
|
||||
internal final var </*0*/ X : O> typeParameter2: kotlin.Int
|
||||
internal final var </*0*/ X : P> typeParameter3: kotlin.Int
|
||||
internal final var </*0*/ X : In<I>> typeParameter4: kotlin.Int
|
||||
internal final var </*0*/ X : In<O>> typeParameter5: kotlin.Int
|
||||
internal final var </*0*/ X : I> typeParameter6: kotlin.Int
|
||||
internal final var </*0*/ X : O> typeParameter7: kotlin.Int
|
||||
internal final var </*0*/ X : P> typeParameter8: kotlin.Int
|
||||
internal final var </*0*/ X : In<I>> typeParameter9: kotlin.Int
|
||||
internal abstract var I.receiver1: kotlin.Int
|
||||
internal abstract var O.receiver2: kotlin.Int
|
||||
internal abstract var P.receiver3: kotlin.Int
|
||||
internal abstract var In<I>.receiver4: kotlin.Int
|
||||
internal abstract var In<O>.receiver5: kotlin.Int
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
trait Test<in I, out O> {
|
||||
val internal_val: <!TYPE_VARIANCE_CONFLICT!>I<!>
|
||||
public val public_val: <!TYPE_VARIANCE_CONFLICT!>I<!>
|
||||
protected val protected_val: <!TYPE_VARIANCE_CONFLICT!>I<!>
|
||||
private val private_val: I
|
||||
|
||||
var interlan_private_set: <!TYPE_VARIANCE_CONFLICT!>O<!>
|
||||
private set
|
||||
public var public_private_set: <!TYPE_VARIANCE_CONFLICT!>O<!>
|
||||
private set
|
||||
protected var protected_private_set: <!TYPE_VARIANCE_CONFLICT!>O<!>
|
||||
private set
|
||||
private var private_private_set: O
|
||||
private set
|
||||
|
||||
fun internal_fun(i: <!TYPE_VARIANCE_CONFLICT!>O<!>) : <!TYPE_VARIANCE_CONFLICT!>I<!>
|
||||
public fun public_fun(i: <!TYPE_VARIANCE_CONFLICT!>O<!>) : <!TYPE_VARIANCE_CONFLICT!>I<!>
|
||||
protected fun protected_fun(i: <!TYPE_VARIANCE_CONFLICT!>O<!>) : <!TYPE_VARIANCE_CONFLICT!>I<!>
|
||||
private fun private_fun(i: O) : I
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package
|
||||
|
||||
internal trait Test</*0*/ in I, /*1*/ out O> {
|
||||
internal abstract var interlan_private_set: O
|
||||
internal abstract val internal_val: I
|
||||
private abstract var private_private_set: O
|
||||
private abstract val private_val: I
|
||||
protected abstract var protected_private_set: O
|
||||
protected abstract val protected_val: I
|
||||
public abstract var public_private_set: O
|
||||
public abstract val public_val: I
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal abstract fun internal_fun(/*0*/ i: O): I
|
||||
private abstract fun private_fun(/*0*/ i: O): I
|
||||
protected abstract fun protected_fun(/*0*/ i: O): I
|
||||
public abstract fun public_fun(/*0*/ i: O): I
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -33,7 +33,7 @@ import java.util.regex.Pattern;
|
||||
public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
@TestMetadata("compiler/testData/diagnostics/tests")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ClassObjects.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.CyclicHierarchy.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.DelegatedProperty.class, Tests.Delegation.class, Tests.Deparenthesize.class, Tests.DuplicateJvmSignature.class, Tests.DynamicTypes.class, Tests.Enum.class, Tests.Evaluate.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.Imports.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.Inline.class, Tests.Inner.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Labels.class, Tests.Library.class, Tests.Multimodule.class, Tests.NamedArguments.class, Tests.NullabilityAndSmartCasts.class, Tests.NullableTypes.class, Tests.Numbers.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.PlatformTypes.class, Tests.Recovery.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Resolve.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.SmartCasts.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.Suppress.class, Tests.ThisAndSuper.class, Tests.TraitWithRequired.class, Tests.Typedefs.class, Tests.Unit.class, Tests.Varargs.class, Tests.When.class})
|
||||
@InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ClassObjects.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.CyclicHierarchy.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.DelegatedProperty.class, Tests.Delegation.class, Tests.Deparenthesize.class, Tests.DuplicateJvmSignature.class, Tests.DynamicTypes.class, Tests.Enum.class, Tests.Evaluate.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.Imports.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.Inline.class, Tests.Inner.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Labels.class, Tests.Library.class, Tests.Multimodule.class, Tests.NamedArguments.class, Tests.NullabilityAndSmartCasts.class, Tests.NullableTypes.class, Tests.Numbers.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.PlatformTypes.class, Tests.Recovery.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Resolve.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.SmartCasts.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.Suppress.class, Tests.ThisAndSuper.class, Tests.TraitWithRequired.class, Tests.Typedefs.class, Tests.Unit.class, Tests.Varargs.class, Tests.Variance.class, Tests.When.class})
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class Tests extends AbstractJetDiagnosticsTest {
|
||||
@TestMetadata("Abstract.kt")
|
||||
@@ -10212,6 +10212,69 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/variance")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class Variance extends AbstractJetDiagnosticsTest {
|
||||
public void testAllFilesPresentInVariance() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/variance"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("Class.kt")
|
||||
public void testClass() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/Class.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("Function.kt")
|
||||
public void testFunction() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/Function.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("InPosition.kt")
|
||||
public void testInPosition() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/InPosition.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("InvariantPosition.kt")
|
||||
public void testInvariantPosition() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/InvariantPosition.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("OutPosition.kt")
|
||||
public void testOutPosition() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/OutPosition.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("PrimaryConstructor.kt")
|
||||
public void testPrimaryConstructor() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/PrimaryConstructor.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ValProperty.kt")
|
||||
public void testValProperty() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/ValProperty.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("VarProperty.kt")
|
||||
public void testVarProperty() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/VarProperty.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("Visibility.kt")
|
||||
public void testVisibility() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/variance/Visibility.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/when")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
Reference in New Issue
Block a user