FIR: report WRONG_ANNOTATION_TARGET on types

This commit is contained in:
Mikhail Glukhikh
2021-05-18 11:11:28 +03:00
parent 2a33a6927c
commit 9a13ec9b76
45 changed files with 89 additions and 300 deletions
@@ -6,22 +6,22 @@
annotation class Ann(val x: Int)
// TESTCASE NUMBER: 1
abstract class Foo : @Ann(10) Any()
abstract class Foo : <!WRONG_ANNOTATION_TARGET!>@Ann(10)<!> Any()
// TESTCASE NUMBER: 2
abstract class Bar<T : @Ann(10) Any>
abstract class Bar<T : <!WRONG_ANNOTATION_TARGET!>@Ann(10)<!> Any>
// TESTCASE NUMBER: 3
fun case_3(a: Any) {
if (a is @Ann(10) String) return
if (a is <!WRONG_ANNOTATION_TARGET!>@Ann(10)<!> String) return
}
// TESTCASE NUMBER: 4
open class TypeToken<T>
val case_4 = object : TypeToken<@Ann(10) String>() {}
val case_4 = object : TypeToken<<!WRONG_ANNOTATION_TARGET!>@Ann(10)<!> String>() {}
// TESTCASE NUMBER: 5
fun case_5(a: Any) {
a as @Ann(10) Int
a as <!WRONG_ANNOTATION_TARGET!>@Ann(10)<!> Int
}
@@ -8,7 +8,7 @@ annotation class Ann(val x: Int)
fun foo(i: Inv<@Ann(unresolved_reference) String>) {}
// TESTCASE NUMBER: 2
fun test(vararg a: @Ann(<!UNRESOLVED_REFERENCE!>unresolved_reference<!>) Any) {}
fun test(vararg a: @Ann(unresolved_reference) Any) {}
// TESTCASE NUMBER: 3
class A<T>(a: @Ann(<!UNRESOLVED_REFERENCE!>unresolved_reference<!>) T)
@@ -18,4 +18,4 @@ val case_1 = object : TypeToken<@Ann(unresolved_reference) String>() {}
*/
interface A
val case_2 = object: @Ann(<!TOO_MANY_ARGUMENTS, TOO_MANY_ARGUMENTS, UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>unresolved_reference<!>) A {}
val case_2 = object: @Ann(<!TOO_MANY_ARGUMENTS, UNRESOLVED_REFERENCE!>unresolved_reference<!>) A {}