@Target(AnnotationTarget.TYPE, AnnotationTarget.TYPEALIAS, AnnotationTarget.TYPE_PARAMETER) annotation class Anno(val position: String) fun foo() { class OriginalClass { val prop = 0 @Anno("alias $prop") typealias NestedTypeAlias <@Anno("type param $prop") A : @Anno("bound $prop") Number> = @Anno("type $prop") OriginalClass } }