Files
codeql/java/ql/test-kotlin1/library-tests/annotation_classes/def.kt
2023-11-21 15:28:12 +00:00

63 lines
1.3 KiB
Kotlin

@file:Annot0k
import kotlin.reflect.KClass
@Target(AnnotationTarget.CLASS,
AnnotationTarget.ANNOTATION_CLASS,
AnnotationTarget.TYPE_PARAMETER,
AnnotationTarget.PROPERTY,
AnnotationTarget.FIELD,
AnnotationTarget.LOCAL_VARIABLE, // TODO
AnnotationTarget.VALUE_PARAMETER,
AnnotationTarget.CONSTRUCTOR,
AnnotationTarget.FUNCTION,
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.PROPERTY_SETTER,
AnnotationTarget.TYPE, // TODO
//AnnotationTarget.EXPRESSION, // TODO
AnnotationTarget.FILE, // TODO
AnnotationTarget.TYPEALIAS // TODO
)
annotation class Annot0k(@get:JvmName("a") val abc: Int = 0)
@Annot0k
annotation class Annot1k(
val a: Int = 2,
val b: String = "ab",
val c: KClass<*> = X::class,
val d: Y = Y.A,
val e: Array<Y> = [Y.A, Y.B],
val f: Annot0k = Annot0k(1)
)
class X {}
enum class Y {
A,B,C
}
@Annot0k(abc = 1)
@Annot1k(d = Y.B, e = arrayOf(Y.C, Y.A))
class Z {
@Annot0k
constructor(){}
}
@Annot0k
fun <@Annot0k T> fn(@Annot0k a: Annot0k) {
println(a.abc)
@Annot0k
var x = 10
}
@Annot0k
@get:Annot0k
@set:Annot0k
@field:Annot0k
var p: @Annot0k Int = 5
fun @receiver:Annot0k String.myExtension() { }
@Annot0k
typealias AAA = Z