Deprecate escaped modifiers and unescaped annotations

This commit is contained in:
Denis Zharkov
2015-09-08 12:11:30 +03:00
parent 25cd9de71a
commit 676ca86ea4
184 changed files with 979 additions and 787 deletions
@@ -5,7 +5,8 @@ annotation class AnnClass(val a: KClass<*>)
class MyClass {
AnnClass(MyClass::class) companion object {
@AnnClass(MyClass::class)
companion object {
}
}
@@ -30,8 +30,8 @@ var vardef: Int = 1
set
<!WRONG_ANNOTATION_TARGET!>@JvmName("C")<!>
class C <!WRONG_ANNOTATION_TARGET!>JvmName("primary")<!> constructor() {
<!WRONG_ANNOTATION_TARGET!>JvmName("ctr")<!> constructor(x: Int): this() {}
class C <!WRONG_ANNOTATION_TARGET!>@JvmName("primary")<!> constructor() {
<!WRONG_ANNOTATION_TARGET!>@JvmName("ctr")<!> constructor(x: Int): this() {}
@JvmName("a")
fun foo() {}
@@ -5,7 +5,7 @@ public @interface A {
}
// FILE: b.kt
A(value = "a", arg = 1) class MyClass
@A(value = "a", arg = 1) class MyClass
fun foo(ann: A) {
ann.<!DEPRECATED_ANNOTATION_METHOD_CALL!>value()<!>
@@ -2,11 +2,11 @@
@Repeatable
annotation class Ann(val i: IntArray)
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
Ann(intArrayOf(i2))
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(intArrayOf(<!TYPE_MISMATCH!>intArrayOf(i, i2, i3)<!>))
@Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
@Ann(intArrayOf(i2))
@Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
@Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
@Ann(intArrayOf(<!TYPE_MISMATCH!>intArrayOf(i, i2, i3)<!>))
class Test
var i = 1
@@ -18,7 +18,7 @@ fun foo(): Int = 1
@Retention(AnnotationRetention.SOURCE)
@Repeatable
annotation class AnnAnn(val i: Array<Ann>)
AnnAnn(arrayOf(Ann(intArrayOf(1))))
AnnAnn(arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
@AnnAnn(arrayOf(Ann(intArrayOf(1))))
@AnnAnn(arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
class TestAnn
val iAnn = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann(intArrayOf(1))<!>
@@ -4,14 +4,14 @@ annotation class Ann(val i: Int)
annotation class AnnIA(val ia: IntArray)
annotation class AnnSA(val sa: Array<String>)
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>MyClass().i<!>)
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>)
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i2<!>)
AnnIA(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>ia<!>)
AnnSA(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>sa<!>)
@Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>MyClass().i<!>)
@Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>)
@Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i2<!>)
@AnnIA(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>ia<!>)
@AnnSA(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>sa<!>)
class Test {
val i = 1
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>) val i2 = 1
@Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>) val i2 = 1
}
var i = 1
@@ -2,14 +2,14 @@
@Repeatable
annotation class Ann(vararg val i: Int)
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>)
Ann(i2)
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>)
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>)
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
Ann(*intArrayOf(i2))
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
@Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>)
@Ann(i2)
@Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>)
@Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>)
@Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
@Ann(*intArrayOf(i2))
@Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
@Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
class Test
var i = 1
@@ -21,7 +21,7 @@ fun foo(): Int = 1
@Retention(AnnotationRetention.SOURCE)
@Repeatable
annotation class AnnAnn(vararg val i: Ann)
AnnAnn(*arrayOf(Ann(1)))
AnnAnn(*arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
@AnnAnn(*arrayOf(Ann(1)))
@AnnAnn(*arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
class TestAnn
val iAnn = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann(1)<!>
@@ -12,8 +12,8 @@ public @interface B {
}
// FILE: c.kt
A(arg = String::class, b = B(y = 1)) class MyClass1
@A(arg = String::class, b = B(y = 1)) class MyClass1
A(b = B(y = 3)) class MyClass2
@A(b = B(y = 3)) class MyClass2
A(arg = String::class, b = B(arg = Boolean::class)) class MyClass3
@A(arg = String::class, b = B(arg = Boolean::class)) class MyClass3
@@ -4,4 +4,4 @@ public @interface A {
}
// FILE: b.kt
A(arg = String::class) class MyClass3
@A(arg = String::class) class MyClass3
@@ -5,5 +5,5 @@ public @interface A {
}
// FILE: b.kt
A(arg = String::class) class MyClass1
A(arg = String::class, x = 2) class MyClass2
@A(arg = String::class) class MyClass1
@A(arg = String::class, x = 2) class MyClass2
@@ -4,4 +4,4 @@ public @interface A {
}
// FILE: b.kt
A(arg = arrayOf(String::class, Int::class)) class MyClass
@A(arg = arrayOf(String::class, Int::class)) class MyClass
@@ -4,5 +4,5 @@ public @interface A {
}
// FILE: b.kt
A(arg = String::class) class MyClass1
A class MyClass2
@A(arg = String::class) class MyClass1
@A class MyClass2
@@ -5,5 +5,5 @@ public @interface A {
}
// FILE: b.kt
A(arg = String::class, x = 4) class MyClass2
A(x = 5) class MyClass3
@A(arg = String::class, x = 4) class MyClass2
@A(x = 5) class MyClass3
@@ -5,4 +5,4 @@ public @interface A {
}
// FILE: b.kt
A(arg1 = String::class, arg2 = Int::class) class MyClass
@A(arg1 = String::class, arg2 = Int::class) class MyClass
@@ -4,5 +4,5 @@ public @interface A {
}
// FILE: b.kt
A(String::class) class MyClass1
A(value = String::class) class MyClass2
@A(String::class) class MyClass1
@A(value = String::class) class MyClass2
@@ -5,8 +5,8 @@ public @interface A {
}
// FILE: b.kt
A(String::class) class MyClass1
A(value = String::class) class MyClass2
@A(String::class) class MyClass1
@A(value = String::class) class MyClass2
A(String::class, x = 2) class MyClass3
A(value = String::class, x = 4) class MyClass4
@A(String::class, x = 2) class MyClass3
@A(value = String::class, x = 4) class MyClass4
@@ -4,6 +4,6 @@ public @interface A {
}
// FILE: b.kt
A(String::class, Int::class) class MyClass1
A(*arrayOf(String::class, Int::class)) class MyClass2
A(value = *arrayOf(String::class, Int::class)) class MyClass3
@A(String::class, Int::class) class MyClass1
@A(*arrayOf(String::class, Int::class)) class MyClass2
@A(value = *arrayOf(String::class, Int::class)) class MyClass3
@@ -4,6 +4,6 @@ public @interface A {
}
// FILE: b.kt
A(String::class) class MyClass1
A(value = String::class) class MyClass2
A class MyClass3
@A(String::class) class MyClass1
@A(value = String::class) class MyClass2
@A class MyClass3
@@ -5,6 +5,6 @@ public @interface A {
}
// FILE: b.kt
A(String::class, x = 2) class MyClass1
A(value = String::class, x = 4) class MyClass2
A(x = 5) class MyClass3
@A(String::class, x = 2) class MyClass1
@A(value = String::class, x = 4) class MyClass2
@A(x = 5) class MyClass3
@@ -6,22 +6,22 @@ class B2 : A()
annotation class Ann1(val arg: Array<KClass<in A>>)
Ann1(arrayOf(A::class))
@Ann1(arrayOf(A::class))
class MyClass1
Ann1(arrayOf(Any::class))
@Ann1(arrayOf(Any::class))
class MyClass1a
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B1::class))
@Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B1::class))
class MyClass2
annotation class Ann2(val arg: Array<KClass<in B1>>)
Ann2(arrayOf(A::class))
@Ann2(arrayOf(A::class))
class MyClass3
Ann2(arrayOf(B1::class))
@Ann2(arrayOf(B1::class))
class MyClass4
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B2::class))
@Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B2::class))
class MyClass5
@@ -6,22 +6,22 @@ class B2 : A()
annotation class Ann1(val arg: Array<KClass<out A>>)
Ann1(arrayOf(A::class))
@Ann1(arrayOf(A::class))
class MyClass1
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(Any::class))
@Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(Any::class))
class MyClass1a
Ann1(arrayOf(B1::class))
@Ann1(arrayOf(B1::class))
class MyClass2
annotation class Ann2(val arg: Array<KClass<out B1>>)
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(A::class))
@Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(A::class))
class MyClass3
Ann2(arrayOf(B1::class))
@Ann2(arrayOf(B1::class))
class MyClass4
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B2::class))
@Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B2::class))
class MyClass5
@@ -7,14 +7,14 @@ annotation class Ann3(val arg: Array<KClass<*>>)
class A1
class A2
Ann1(A1::class)
Ann2(A1::class, A2::class)
Ann3(arrayOf(A1::class, A2::class))
@Ann1(A1::class)
@Ann2(A1::class, A2::class)
@Ann3(arrayOf(A1::class, A2::class))
class MyClass1
Ann1(<!ANNOTATION_PARAMETER_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>A3<!>::class<!>)
@Ann1(<!ANNOTATION_PARAMETER_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>A3<!>::class<!>)
class MyClass2
val x = A1::class
Ann1(<!ANNOTATION_PARAMETER_MUST_BE_KCLASS_LITERAL!>x<!>)
@Ann1(<!ANNOTATION_PARAMETER_MUST_BE_KCLASS_LITERAL!>x<!>)
class MyClass3
@@ -6,22 +6,22 @@ class B2 : A()
annotation class Ann1(val arg: KClass<in A>)
Ann1(A::class)
@Ann1(A::class)
class MyClass1
Ann1(Any::class)
@Ann1(Any::class)
class MyClass1a
Ann1(<!TYPE_MISMATCH!>B1::class<!>)
@Ann1(<!TYPE_MISMATCH!>B1::class<!>)
class MyClass2
annotation class Ann2(val arg: KClass<in B1>)
Ann2(A::class)
@Ann2(A::class)
class MyClass3
Ann2(B1::class)
@Ann2(B1::class)
class MyClass4
Ann2(<!TYPE_MISMATCH!>B2::class<!>)
@Ann2(<!TYPE_MISMATCH!>B2::class<!>)
class MyClass5
@@ -6,22 +6,22 @@ class B2 : A()
annotation class Ann1(val arg: KClass<out A>)
Ann1(A::class)
@Ann1(A::class)
class MyClass1
Ann1(<!TYPE_MISMATCH!>Any::class<!>)
@Ann1(<!TYPE_MISMATCH!>Any::class<!>)
class MyClass1a
Ann1(B1::class)
@Ann1(B1::class)
class MyClass2
annotation class Ann2(val arg: KClass<out B1>)
Ann2(<!TYPE_MISMATCH!>A::class<!>)
@Ann2(<!TYPE_MISMATCH!>A::class<!>)
class MyClass3
Ann2(B1::class)
@Ann2(B1::class)
class MyClass4
Ann2(<!TYPE_MISMATCH!>B2::class<!>)
@Ann2(<!TYPE_MISMATCH!>B2::class<!>)
class MyClass5
@@ -5,19 +5,19 @@ class B : A()
annotation class Ann1(val arg: KClass<A>)
Ann1(A::class)
@Ann1(A::class)
class MyClass1
Ann1(<!TYPE_MISMATCH!>Any::class<!>)
@Ann1(<!TYPE_MISMATCH!>Any::class<!>)
class MyClass1a
Ann1(<!TYPE_MISMATCH!>B::class<!>)
@Ann1(<!TYPE_MISMATCH!>B::class<!>)
class MyClass2
annotation class Ann2(val arg: KClass<B>)
Ann2(<!TYPE_MISMATCH!>A::class<!>)
@Ann2(<!TYPE_MISMATCH!>A::class<!>)
class MyClass3
Ann2(B::class)
@Ann2(B::class)
class MyClass4
@@ -1,9 +1,9 @@
import kotlin.jvm.JvmStatic
class A {
<!WRONG_ANNOTATION_TARGET!>JvmStatic<!> constructor() {}
<!WRONG_ANNOTATION_TARGET!>@JvmStatic<!> constructor() {}
inner class B {
<!WRONG_ANNOTATION_TARGET!>JvmStatic<!> constructor() {}
<!WRONG_ANNOTATION_TARGET!>@JvmStatic<!> constructor() {}
}
}
class C <!WRONG_ANNOTATION_TARGET!>JvmStatic<!> constructor()
class C <!WRONG_ANNOTATION_TARGET!>@JvmStatic<!> constructor()
@@ -3,52 +3,52 @@ import kotlin.jvm.JvmStatic
class A {
companion object {
JvmStatic fun a1() {
@JvmStatic fun a1() {
}
}
object A {
JvmStatic fun a2() {
@JvmStatic fun a2() {
}
}
fun test() {
val s = object {
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a3()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic fun a3()<!> {
}
}
}
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a4()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic fun a4()<!> {
}
}
interface B {
companion object {
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a1()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic fun a1()<!> {
}
}
object A {
JvmStatic fun a2() {
@JvmStatic fun a2() {
}
}
fun test() {
val s = object {
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a3()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic fun a3()<!> {
}
}
}
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a4()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic fun a4()<!> {
}
}
@@ -31,7 +31,7 @@ class A {
<!OVERRIDE_CANNOT_BE_STATIC!>@JvmStatic override val base1: Int<!> = 0
JvmStatic open fun f() {}
@JvmStatic open fun f() {}
override val base2: Int = 0
<!OVERRIDE_CANNOT_BE_STATIC!>@JvmStatic get<!>
@@ -1,5 +1,5 @@
annotation class Ann(val x: Int, val value: String, val y: Double)
Ann(value = "a", x = 1, y = 1.0) fun foo1() {}
Ann(2, "b", 2.0) fun foo2() {}
Ann(3, "c", y = 2.0) fun foo3() {}
@Ann(value = "a", x = 1, y = 1.0) fun foo1() {}
@Ann(2, "b", 2.0) fun foo2() {}
@Ann(3, "c", y = 2.0) fun foo3() {}
@@ -6,6 +6,6 @@ public @interface A {
}
// FILE: b.kt
A(<!CONSTANT_EXPECTED_TYPE_MISMATCH, POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>,
@A(<!CONSTANT_EXPECTED_TYPE_MISMATCH, POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>,
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1.0<!>,
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>, <!TOO_MANY_ARGUMENTS!>1<!>, <!TOO_MANY_ARGUMENTS!>2<!>) fun foo1() {}
@@ -6,8 +6,8 @@ public @interface A {
}
// FILE: b.kt
A(<!CONSTANT_EXPECTED_TYPE_MISMATCH, POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>,
@A(<!CONSTANT_EXPECTED_TYPE_MISMATCH, POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>,
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1.0<!>,
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>) fun foo1() {}
A(<!CONSTANT_EXPECTED_TYPE_MISMATCH, POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>2.0<!>, x = true, b = 2.0) fun foo2() {}
@A(<!CONSTANT_EXPECTED_TYPE_MISMATCH, POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>2.0<!>, x = true, b = 2.0) fun foo2() {}
@@ -7,11 +7,11 @@ public @interface A {
}
// FILE: b.kt
A("v1", <!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1<!>,
@A("v1", <!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1<!>,
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1.0<!>,
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>) fun foo1() {}
A("v2", <!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>2<!>, x = true, b = 2.0) fun foo2() {}
@A("v2", <!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>2<!>, x = true, b = 2.0) fun foo2() {}
A("v2", x = true, b = 3.0, a = 4) fun foo3() {}
A(value = "v2", x = true, b = 3.0, a = 4) fun foo4() {}
@A("v2", x = true, b = 3.0, a = 4) fun foo3() {}
@A(value = "v2", x = true, b = 3.0, a = 4) fun foo4() {}
@@ -6,12 +6,12 @@ public @interface A {
}
// FILE: b.kt
A(<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1<!>,
@A(<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1<!>,
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1.0<!>,
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>) fun foo1() {}
A(<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>2<!>, x = true, b = 2.0) fun foo2() {}
@A(<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>2<!>, x = true, b = 2.0) fun foo2() {}
A(x = true, b = 3.0, a = 4) fun foo3() {}
@A(x = true, b = 3.0, a = 4) fun foo3() {}
@@ -1,19 +1,19 @@
// !DIAGNOSTICS: -JAVA_LANG_CLASS_PARAMETER_IN_ANNOTATION
package a.b.c
kotlin.Deprecated("aaa")
ann1(kotlin.Deprecated("aaa"))
@kotlin.Deprecated("aaa")
@ann1(kotlin.Deprecated("aaa"))
<!REPEATED_ANNOTATION!>a.b.c.ann1()<!>
ann2(a.b.c.ann1())
<!REPEATED_ANNOTATION!>@a.b.c.ann1()<!>
@ann2(a.b.c.ann1())
A.IAnn()
ann3(A.IAnn())
@A.IAnn()
@ann3(A.IAnn())
<!REPEATED_ANNOTATION!>a.b.c.A.IAnn()<!>
<!REPEATED_ANNOTATION!>ann3(a.b.c.A.IAnn())<!>
<!REPEATED_ANNOTATION!>@a.b.c.A.IAnn()<!>
<!REPEATED_ANNOTATION!>@ann3(a.b.c.A.IAnn())<!>
annArray(kotlin.arrayOf("a"))
@annArray(kotlin.arrayOf("a"))
fun test() = 1
annotation class ann1(val p: Deprecated = kotlin.Deprecated("aaa"))