[K/N] Add test for Annotations on type parameters and update doc
^KT-57404
This commit is contained in:
committed by
Space Team
parent
66c278ff8d
commit
1c2f34ab4e
@@ -15,7 +15,7 @@ public enum class AnnotationTarget {
|
|||||||
CLASS,
|
CLASS,
|
||||||
/** Annotation class only */
|
/** Annotation class only */
|
||||||
ANNOTATION_CLASS,
|
ANNOTATION_CLASS,
|
||||||
/** Generic type parameter (unsupported yet) */
|
/** Generic type parameter */
|
||||||
TYPE_PARAMETER,
|
TYPE_PARAMETER,
|
||||||
/** Property */
|
/** Property */
|
||||||
PROPERTY,
|
PROPERTY,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
package test
|
package test
|
||||||
|
|
||||||
annotation class AnnoClass
|
annotation class AnnoClass
|
||||||
annotation class AnnoConstructor
|
annotation class AnnoConstructor
|
||||||
annotation class AnnoConstructorParameter
|
annotation class AnnoConstructorParameter
|
||||||
@@ -14,6 +15,14 @@ annotation class AnnoFunction
|
|||||||
annotation class AnnoFunctionParam
|
annotation class AnnoFunctionParam
|
||||||
annotation class AnnoFunctionExtensionReceiver
|
annotation class AnnoFunctionExtensionReceiver
|
||||||
annotation class AnnoPropertyExtensionReceiver
|
annotation class AnnoPropertyExtensionReceiver
|
||||||
|
|
||||||
|
@Target(AnnotationTarget.TYPE_PARAMETER)
|
||||||
|
annotation class AnnoFunctionTypeParameter
|
||||||
|
@Target(AnnotationTarget.TYPE_PARAMETER)
|
||||||
|
annotation class AnnoClassTypeParameter
|
||||||
|
@Target(AnnotationTarget.TYPE)
|
||||||
|
annotation class AnnoClassUsageTypeParameter
|
||||||
|
|
||||||
@AnnoClass
|
@AnnoClass
|
||||||
class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) {
|
class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) {
|
||||||
@AnnoProperty
|
@AnnoProperty
|
||||||
@@ -36,3 +45,6 @@ class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) {
|
|||||||
fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int) {}
|
fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int) {}
|
||||||
@AnnoPropertyExtensionReceiver
|
@AnnoPropertyExtensionReceiver
|
||||||
val Foo.extProp get() = this.prop
|
val Foo.extProp get() = this.prop
|
||||||
|
|
||||||
|
fun <@AnnoFunctionTypeParameter T> f(x : B<@AnnoClassUsageTypeParameter Int>) {}
|
||||||
|
class B<@AnnoClassTypeParameter T>
|
||||||
@@ -1,11 +1,14 @@
|
|||||||
annotation class AnnoBackingField constructor() : Annotation
|
annotation class AnnoBackingField constructor() : Annotation
|
||||||
annotation class AnnoClass constructor() : Annotation
|
annotation class AnnoClass constructor() : Annotation
|
||||||
|
@Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoClassTypeParameter constructor() : Annotation
|
||||||
|
@Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoClassUsageTypeParameter constructor() : Annotation
|
||||||
annotation class AnnoConstructor constructor() : Annotation
|
annotation class AnnoConstructor constructor() : Annotation
|
||||||
annotation class AnnoConstructorParameter constructor() : Annotation
|
annotation class AnnoConstructorParameter constructor() : Annotation
|
||||||
annotation class AnnoDelegatedField constructor() : Annotation
|
annotation class AnnoDelegatedField constructor() : Annotation
|
||||||
annotation class AnnoFunction constructor() : Annotation
|
annotation class AnnoFunction constructor() : Annotation
|
||||||
annotation class AnnoFunctionExtensionReceiver constructor() : Annotation
|
annotation class AnnoFunctionExtensionReceiver constructor() : Annotation
|
||||||
annotation class AnnoFunctionParam constructor() : Annotation
|
annotation class AnnoFunctionParam constructor() : Annotation
|
||||||
|
@Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoFunctionTypeParameter constructor() : Annotation
|
||||||
annotation class AnnoGetter constructor() : Annotation
|
annotation class AnnoGetter constructor() : Annotation
|
||||||
annotation class AnnoProperty constructor() : Annotation
|
annotation class AnnoProperty constructor() : Annotation
|
||||||
annotation class AnnoPropertyExtensionReceiver constructor() : Annotation
|
annotation class AnnoPropertyExtensionReceiver constructor() : Annotation
|
||||||
@@ -13,6 +16,7 @@
|
|||||||
annotation class AnnoSetParam2 constructor() : Annotation
|
annotation class AnnoSetParam2 constructor() : Annotation
|
||||||
annotation class AnnoSetter constructor() : Annotation
|
annotation class AnnoSetter constructor() : Annotation
|
||||||
annotation class AnnoSetter2 constructor() : Annotation
|
annotation class AnnoSetter2 constructor() : Annotation
|
||||||
|
class B<@AnnoClassTypeParameter T> constructor()
|
||||||
@AnnoClass class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) {
|
@AnnoClass class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) {
|
||||||
@delegate:AnnoDelegatedField val immutableProp: Int
|
@delegate:AnnoDelegatedField val immutableProp: Int
|
||||||
var mutableProp: Int
|
var mutableProp: Int
|
||||||
@@ -23,3 +27,4 @@
|
|||||||
}
|
}
|
||||||
@AnnoPropertyExtensionReceiver val Foo.extProp: Int
|
@AnnoPropertyExtensionReceiver val Foo.extProp: Int
|
||||||
@AnnoFunction fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int)
|
@AnnoFunction fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int)
|
||||||
|
fun <@AnnoFunctionTypeParameter T> f(x: B<@AnnoClassUsageTypeParameter Int>)
|
||||||
Reference in New Issue
Block a user