[FIR] Resolve annotations as calls

This commit is contained in:
Dmitriy Novozhilov
2020-07-23 17:47:38 +03:00
committed by Mikhail Glukhikh
parent bc1fa8ed7f
commit 721b9b4d8c
99 changed files with 529 additions and 232 deletions
@@ -12,12 +12,12 @@ public @interface A {
@A(*arrayOf("5", "6"), "7", y = 3) fun test3() {}
@A("1", "2", "3", x = String::class, y = 4) fun test4() {}
<!INAPPLICABLE_CANDIDATE!>@A("1", "2", "3", x = String::class, y = 4)<!> fun test4() {}
@A("4", y = 5) fun test5() {}
@A(*arrayOf("5", "6"), "7", x = Any::class, y = 6) fun test6() {}
<!INAPPLICABLE_CANDIDATE!>@A(*arrayOf("5", "6"), "7", x = Any::class, y = 6)<!> fun test6() {}
@A(y = 7) fun test7() {}
@A("8", "9", "10") fun test8() {}
<!INAPPLICABLE_CANDIDATE!>@A("8", "9", "10")<!> fun test8() {}
@@ -15,16 +15,16 @@ public @interface A {
@A(*arrayOf("5", "6"), "7") fun test3() {}
@A("1", "2", "3", x = String::class) fun test4() {}
<!INAPPLICABLE_CANDIDATE!>@A("1", "2", "3", x = String::class)<!> fun test4() {}
@A("4", y = 2) fun test5() {}
@A(*arrayOf("5", "6"), "7", x = Any::class, y = 3) fun test6() {}
<!INAPPLICABLE_CANDIDATE!>@A(*arrayOf("5", "6"), "7", x = Any::class, y = 3)<!> fun test6() {}
@A() fun test7() {}
@A fun test8() {}
@A(x = Any::class, *arrayOf("5", "6"), "7", y = 3) fun test9() {}
@A(x = Any::class, value = ["5", "6"], "7", y = 3) fun test10() {}
@A(x = Any::class, value = ["5", "6", "7"], y = 3) fun test11() {}
<!INAPPLICABLE_CANDIDATE!>@A(x = Any::class, *arrayOf("5", "6"), "7", y = 3)<!> fun test9() {}
<!INAPPLICABLE_CANDIDATE!>@A(x = Any::class, value = ["5", "6"], "7", y = 3)<!> fun test10() {}
<!INAPPLICABLE_CANDIDATE!>@A(x = Any::class, value = ["5", "6", "7"], y = 3)<!> fun test11() {}
@@ -6,6 +6,6 @@ public @interface A {
}
// FILE: b.kt
@A(*arrayOf(1, "b"))
<!INAPPLICABLE_CANDIDATE!>@A(*arrayOf(1, "b"))<!>
fun test() {
}
@@ -2,6 +2,6 @@
annotation class B(vararg val args: String)
@B(*arrayOf(1, "b"))
<!INAPPLICABLE_CANDIDATE!>@B(*arrayOf(1, "b"))<!>
fun test() {
}
@@ -1,27 +1,27 @@
// !DIAGNOSTICS: -INVISIBLE_MEMBER -INVISIBLE_REFERENCE
// FILE: b.kt
@file:JvmPackageName("")
<!HIDDEN!>@file:JvmPackageName("")<!>
package b
fun b() {}
// FILE: c.kt
@file:JvmPackageName("invalid-fq-name")
<!HIDDEN!>@file:JvmPackageName("invalid-fq-name")<!>
package c
fun c() {}
// FILE: d.kt
@file:JvmPackageName("d")
<!HIDDEN!>@file:JvmPackageName("d")<!>
package d
class D
fun d() {}
// FILE: e.kt
@file:JvmPackageName(42)
<!HIDDEN!>@file:JvmPackageName(42)<!>
package e
fun e() {}
// FILE: f.kt
@file:JvmPackageName(f)
<!HIDDEN!>@file:JvmPackageName(f)<!>
package f
const val name = "f"
@@ -14,7 +14,7 @@ class MyClass1
@Ann1(arrayOf(Any::class))
class MyClass1a
@Ann1(arrayOf(B1::class))
<!INAPPLICABLE_CANDIDATE!>@Ann1(arrayOf(B1::class))<!>
class MyClass2
annotation class Ann2(val arg: Array<KClass<in B1>>)
@@ -25,5 +25,5 @@ class MyClass3
@Ann2(arrayOf(B1::class))
class MyClass4
@Ann2(arrayOf(B2::class))
<!INAPPLICABLE_CANDIDATE!>@Ann2(arrayOf(B2::class))<!>
class MyClass5
@@ -11,7 +11,7 @@ annotation class Ann1(val arg: Array<KClass<out A>>)
@Ann1(arrayOf(A::class))
class MyClass1
@Ann1(arrayOf(Any::class))
<!INAPPLICABLE_CANDIDATE!>@Ann1(arrayOf(Any::class))<!>
class MyClass1a
@Ann1(arrayOf(B1::class))
@@ -19,11 +19,11 @@ class MyClass2
annotation class Ann2(val arg: Array<KClass<out B1>>)
@Ann2(arrayOf(A::class))
<!INAPPLICABLE_CANDIDATE!>@Ann2(arrayOf(A::class))<!>
class MyClass3
@Ann2(arrayOf(B1::class))
class MyClass4
@Ann2(arrayOf(B2::class))
<!INAPPLICABLE_CANDIDATE!>@Ann2(arrayOf(B2::class))<!>
class MyClass5
@@ -12,7 +12,7 @@ class MyClass1
@Ann1(Any::class)
class MyClass1a
@Ann1(B1::class)
<!INAPPLICABLE_CANDIDATE!>@Ann1(B1::class)<!>
class MyClass2
annotation class Ann2(val arg: KClass<in B1>)
@@ -23,5 +23,5 @@ class MyClass3
@Ann2(B1::class)
class MyClass4
@Ann2(B2::class)
<!INAPPLICABLE_CANDIDATE!>@Ann2(B2::class)<!>
class MyClass5
@@ -9,7 +9,7 @@ annotation class Ann1(val arg: KClass<out A>)
@Ann1(A::class)
class MyClass1
@Ann1(Any::class)
<!INAPPLICABLE_CANDIDATE!>@Ann1(Any::class)<!>
class MyClass1a
@Ann1(B1::class)
@@ -17,11 +17,11 @@ class MyClass2
annotation class Ann2(val arg: KClass<out B1>)
@Ann2(A::class)
<!INAPPLICABLE_CANDIDATE!>@Ann2(A::class)<!>
class MyClass3
@Ann2(B1::class)
class MyClass4
@Ann2(B2::class)
<!INAPPLICABLE_CANDIDATE!>@Ann2(B2::class)<!>
class MyClass5
@@ -8,15 +8,15 @@ annotation class Ann1(val arg: KClass<A>)
@Ann1(A::class)
class MyClass1
@Ann1(Any::class)
<!INAPPLICABLE_CANDIDATE!>@Ann1(Any::class)<!>
class MyClass1a
@Ann1(B::class)
<!INAPPLICABLE_CANDIDATE!>@Ann1(B::class)<!>
class MyClass2
annotation class Ann2(val arg: KClass<B>)
@Ann2(A::class)
<!INAPPLICABLE_CANDIDATE!>@Ann2(A::class)<!>
class MyClass3
@Ann2(B::class)
@@ -6,6 +6,6 @@ public @interface A {
}
// FILE: b.kt
@A(false,
<!INAPPLICABLE_CANDIDATE!>@A(false,
1.0,
false, 1, 2) fun foo1() {}
false, 1, 2)<!> fun foo1() {}
@@ -6,8 +6,8 @@ public @interface A {
}
// FILE: b.kt
@A(false,
<!INAPPLICABLE_CANDIDATE!>@A(false,
1.0,
false) fun foo1() {}
false)<!> fun foo1() {}
@A(2.0, x = true, b = 2.0) fun foo2() {}
<!INAPPLICABLE_CANDIDATE!>@A(2.0, x = true, b = 2.0)<!> fun foo2() {}