| // KT-57135 K2 dosen't take into account `field` target on annotation for property |
| // MUTED_WHEN: K2 |
| package test |
| |
| annotation class AnnoClass |
| annotation class AnnoConstructor |
| annotation class AnnoConstructorParameter |
| annotation class AnnoProperty |
| annotation class AnnoSetParam |
| annotation class AnnoSetParam2 |
| annotation class AnnoBackingField |
| annotation class AnnoGetter |
| annotation class AnnoSetter |
| annotation class AnnoSetter2 |
| annotation class AnnoDelegatedField |
| 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 |
| @setparam:AnnoSetParam |
| @field:AnnoBackingField |
| var prop: Int = i |
| @AnnoGetter |
| get() = field + 1 |
| @AnnoSetter |
| set(x: Int) { field = x*2 } |
| |
| @set:AnnoSetter2 |
| var mutableProp = 0 |
| set(@AnnoSetParam2 x: Int) { field = x*2 } |
| |
| @delegate:AnnoDelegatedField |
| val immutableProp by lazy { prop } |
| } |
| @AnnoFunction |
| 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> |