[K/N] Add test for Annotations on type parameters and update doc

^KT-57404
This commit is contained in:
Pavel Kunyavskiy
2023-03-17 18:18:44 +01:00
committed by Space Team
parent 66c278ff8d
commit 1c2f34ab4e
3 changed files with 19 additions and 2 deletions
@@ -1,4 +1,5 @@
package test
annotation class AnnoClass
annotation class AnnoConstructor
annotation class AnnoConstructorParameter
@@ -14,6 +15,14 @@ annotation class AnnoFunction
annotation class AnnoFunctionParam
annotation class AnnoFunctionExtensionReceiver
annotation class AnnoPropertyExtensionReceiver
@Target(AnnotationTarget.TYPE_PARAMETER)
annotation class AnnoFunctionTypeParameter
@Target(AnnotationTarget.TYPE_PARAMETER)
annotation class AnnoClassTypeParameter
@Target(AnnotationTarget.TYPE)
annotation class AnnoClassUsageTypeParameter
@AnnoClass
class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) {
@AnnoProperty
@@ -36,3 +45,6 @@ class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) {
fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int) {}
@AnnoPropertyExtensionReceiver
val Foo.extProp get() = this.prop
fun <@AnnoFunctionTypeParameter T> f(x : B<@AnnoClassUsageTypeParameter Int>) {}
class B<@AnnoClassTypeParameter T>
+6 -1
View File
@@ -1,11 +1,14 @@
annotation class AnnoBackingField 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 AnnoConstructorParameter constructor() : Annotation
annotation class AnnoDelegatedField constructor() : Annotation
annotation class AnnoFunction constructor() : Annotation
annotation class AnnoFunctionExtensionReceiver constructor() : Annotation
annotation class AnnoFunctionParam constructor() : Annotation
@Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoFunctionTypeParameter constructor() : Annotation
annotation class AnnoGetter constructor() : Annotation
annotation class AnnoProperty constructor() : Annotation
annotation class AnnoPropertyExtensionReceiver constructor() : Annotation
@@ -13,6 +16,7 @@
annotation class AnnoSetParam2 constructor() : Annotation
annotation class AnnoSetter constructor() : Annotation
annotation class AnnoSetter2 constructor() : Annotation
class B<@AnnoClassTypeParameter T> constructor()
@AnnoClass class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) {
@delegate:AnnoDelegatedField val immutableProp: Int
var mutableProp: Int
@@ -22,4 +26,5 @@
@AnnoSetter set
}
@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>)