[FE 1.0] Report errors on cycles in annotation parameter types
^KT-47932 ^KT-50753 Fixed
This commit is contained in:
committed by
teamcity
parent
139a800ff7
commit
e9ac24dc33
+15
@@ -0,0 +1,15 @@
|
||||
// WITH_REFLECT
|
||||
// LANGUAGE: +ProhibitCyclesInAnnotations
|
||||
// ISSUE: KT-47932
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
annotation class X(val value: X) // error
|
||||
annotation class Y(val value: Array<Y>) // error
|
||||
|
||||
annotation class Z1(val a: Z2, val b: Z2) // error
|
||||
annotation class Z2(val value: Z1) // error
|
||||
|
||||
annotation class A(val x: KClass<A>) // OK
|
||||
annotation class B(val x: KClass<B>) // OK
|
||||
annotation class C(val b: B) // OK
|
||||
@@ -0,0 +1,15 @@
|
||||
// WITH_REFLECT
|
||||
// LANGUAGE: +ProhibitCyclesInAnnotations
|
||||
// ISSUE: KT-47932
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
annotation class X(<!CYCLE_IN_ANNOTATION_PARAMETER_ERROR!>val value: X<!>) // error
|
||||
annotation class Y(<!CYCLE_IN_ANNOTATION_PARAMETER_ERROR!>val value: Array<Y><!>) // error
|
||||
|
||||
annotation class Z1(<!CYCLE_IN_ANNOTATION_PARAMETER_ERROR!>val a: Z2<!>, <!CYCLE_IN_ANNOTATION_PARAMETER_ERROR!>val b: Z2<!>) // error
|
||||
annotation class Z2(<!CYCLE_IN_ANNOTATION_PARAMETER_ERROR!>val value: Z1<!>) // error
|
||||
|
||||
annotation class A(val x: KClass<A>) // OK
|
||||
annotation class B(val x: KClass<B>) // OK
|
||||
annotation class C(val b: B) // OK
|
||||
@@ -0,0 +1,58 @@
|
||||
package
|
||||
|
||||
public final annotation class A : kotlin.Annotation {
|
||||
public constructor A(/*0*/ x: kotlin.reflect.KClass<A>)
|
||||
public final val x: kotlin.reflect.KClass<A>
|
||||
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 annotation class B : kotlin.Annotation {
|
||||
public constructor B(/*0*/ x: kotlin.reflect.KClass<B>)
|
||||
public final val x: kotlin.reflect.KClass<B>
|
||||
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 annotation class C : kotlin.Annotation {
|
||||
public constructor C(/*0*/ b: B)
|
||||
public final val b: B
|
||||
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 annotation class X : kotlin.Annotation {
|
||||
public constructor X(/*0*/ value: X)
|
||||
public final val value: X
|
||||
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 annotation class Y : kotlin.Annotation {
|
||||
public constructor Y(/*0*/ value: kotlin.Array<Y>)
|
||||
public final val value: kotlin.Array<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
|
||||
}
|
||||
|
||||
public final annotation class Z1 : kotlin.Annotation {
|
||||
public constructor Z1(/*0*/ a: Z2, /*1*/ b: Z2)
|
||||
public final val a: Z2
|
||||
public final val b: Z2
|
||||
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 annotation class Z2 : kotlin.Annotation {
|
||||
public constructor Z2(/*0*/ value: Z1)
|
||||
public final val value: Z1
|
||||
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
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// WITH_REFLECT
|
||||
// LANGUAGE: -ProhibitCyclesInAnnotations
|
||||
// ISSUE: KT-47932
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
annotation class X(val value: X) // error
|
||||
annotation class Y(val value: Array<Y>) // error
|
||||
|
||||
annotation class Z1(val a: Z2, val b: Z2) // error
|
||||
annotation class Z2(val value: Z1) // error
|
||||
|
||||
annotation class A(val x: KClass<A>) // OK
|
||||
annotation class B(val x: KClass<B>) // OK
|
||||
annotation class C(val b: B) // OK
|
||||
@@ -0,0 +1,15 @@
|
||||
// WITH_REFLECT
|
||||
// LANGUAGE: -ProhibitCyclesInAnnotations
|
||||
// ISSUE: KT-47932
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
annotation class X(<!CYCLE_IN_ANNOTATION_PARAMETER_WARNING!>val value: X<!>) // error
|
||||
annotation class Y(<!CYCLE_IN_ANNOTATION_PARAMETER_WARNING!>val value: Array<Y><!>) // error
|
||||
|
||||
annotation class Z1(<!CYCLE_IN_ANNOTATION_PARAMETER_WARNING!>val a: Z2<!>, <!CYCLE_IN_ANNOTATION_PARAMETER_WARNING!>val b: Z2<!>) // error
|
||||
annotation class Z2(<!CYCLE_IN_ANNOTATION_PARAMETER_WARNING!>val value: Z1<!>) // error
|
||||
|
||||
annotation class A(val x: KClass<A>) // OK
|
||||
annotation class B(val x: KClass<B>) // OK
|
||||
annotation class C(val b: B) // OK
|
||||
@@ -0,0 +1,59 @@
|
||||
package
|
||||
|
||||
public final annotation class A : kotlin.Annotation {
|
||||
public constructor A(/*0*/ x: kotlin.reflect.KClass<A>)
|
||||
public final val x: kotlin.reflect.KClass<A>
|
||||
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 annotation class B : kotlin.Annotation {
|
||||
public constructor B(/*0*/ x: kotlin.reflect.KClass<B>)
|
||||
public final val x: kotlin.reflect.KClass<B>
|
||||
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 annotation class C : kotlin.Annotation {
|
||||
public constructor C(/*0*/ b: B)
|
||||
public final val b: B
|
||||
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 annotation class X : kotlin.Annotation {
|
||||
public constructor X(/*0*/ value: X)
|
||||
public final val value: X
|
||||
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 annotation class Y : kotlin.Annotation {
|
||||
public constructor Y(/*0*/ value: kotlin.Array<Y>)
|
||||
public final val value: kotlin.Array<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
|
||||
}
|
||||
|
||||
public final annotation class Z1 : kotlin.Annotation {
|
||||
public constructor Z1(/*0*/ a: Z2, /*1*/ b: Z2)
|
||||
public final val a: Z2
|
||||
public final val b: Z2
|
||||
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 annotation class Z2 : kotlin.Annotation {
|
||||
public constructor Z2(/*0*/ value: Z1)
|
||||
public final val value: Z1
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user