| // RUN_PIPELINE_TILL: FRONTEND |
| @Retention(AnnotationRetention.BINARY) |
| annotation class X |
| |
| @Retention(AnnotationRetention.RUNTIME) |
| annotation class Y |
| |
| @X |
| external class A { |
| @X |
| fun f() |
| |
| @X |
| val p: Int |
| |
| @get:X |
| val r: Int |
| } |
| |
| <!RUNTIME_ANNOTATION_ON_EXTERNAL_DECLARATION!>@Y<!> |
| external class B { |
| <!RUNTIME_ANNOTATION_ON_EXTERNAL_DECLARATION!>@Y<!> |
| fun f() |
| |
| <!RUNTIME_ANNOTATION_ON_EXTERNAL_DECLARATION!>@Y<!> |
| val p: Int |
| |
| <!RUNTIME_ANNOTATION_ON_EXTERNAL_DECLARATION!>@get:Y<!> |
| val r: Int |
| } |
| |
| typealias TY = Y |
| |
| <!RUNTIME_ANNOTATION_ON_EXTERNAL_DECLARATION!>@TY<!> |
| external class BB |
| |
| @X |
| class C { |
| @X |
| fun f() {} |
| |
| @X |
| val p: Int = 0 |
| |
| val q: Int |
| @X get() = 0 |
| |
| @get:X |
| val r: Int = 0 |
| } |
| |
| @Y |
| class D { |
| @Y |
| fun f() {} |
| |
| @Y |
| val p: Int = 0 |
| |
| val q: Int |
| @Y get() = 0 |
| |
| @get:Y |
| val r: Int = 0 |
| } |