import kotlin.reflect.KClass enum class SomeEnum { A, B } annotation class MyAnnotation( val intValue: Int, val stringValue: String, val enumValue: SomeEnum, val kClasses: Array>, val annotation: MyOtherAnnotation ) annotation class MyOtherAnnotation(val intValue: Int, val stringValue: String) const val constInt = 10 const val constString = "" @MyAnnotation( intValue = 10, stringValue = constString, enumValue = SomeEnum.A, kClasses = [String::class, constString::class], annotation = MyOtherAnnotation( intValue = constInt, stringValue = "hello" ) ) fun foo() {}