FIR: report WRONG_ANNOTATION_TARGET(_WITH_USE_SITE_TARGET) on declarations

This commit is contained in:
Mikhail Glukhikh
2021-05-18 11:48:44 +03:00
parent 95f2c52659
commit 2a33a6927c
73 changed files with 394 additions and 392 deletions
@@ -8,26 +8,26 @@ class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
}
@delegate:Field
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Field<!>
class SomeClass {
@delegate:Field
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Field<!>
constructor()
@delegate:Field @delegate:Prop
@delegate:Field <!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Prop<!>
protected val simpleProperty: String = "text"
@delegate:Field @delegate:Prop
@delegate:Field <!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Prop<!>
protected val delegatedProperty: String by CustomDelegate()
@delegate:Field @delegate:Prop
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Field<!> <!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Prop<!>
val propertyWithCustomGetter: Int
get() = 5
}
class WithPrimaryConstructor(@delegate:Field @delegate:Prop val a: String,
@param:Field @param:Prop val b: String)
class WithPrimaryConstructor(@delegate:Field <!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Prop<!> val a: String,
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@param:Field<!> <!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@param:Prop<!> val b: String)
fun foo(@delegate:Field @delegate:Prop x: Int) = x
fun foo(<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Field<!> <!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@delegate:Prop<!> x: Int) = x
@@ -6,10 +6,10 @@ class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
}
@field:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@field:Ann<!>
class SomeClass {
@field:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@field:Ann<!>
constructor()
@field:Ann
@@ -21,13 +21,13 @@ class SomeClass {
@field:Ann
protected val delegatedProperty: String by CustomDelegate()
@field:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@field:Ann<!>
val propertyWithCustomGetter: Int
get() = 5
@field:Ann
fun anotherFun(@field:Ann s: String) {
@field:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@field:Ann<!>
fun anotherFun(<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@field:Ann<!> s: String) {
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@field:Ann<!>
val localVariable = 5
}
@@ -1,12 +0,0 @@
// FILE: annotations.kt
@Target(AnnotationTarget.CLASS)
public annotation class ClassAnn
@Target(AnnotationTarget.FILE)
public annotation class FileAnn
// FILE: 1.kt
@file:ClassAnn
// FILE: 2.kt
@file:FileAnn
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: annotations.kt
@Target(AnnotationTarget.CLASS)
public annotation class ClassAnn
@@ -1,39 +0,0 @@
import kotlin.reflect.KProperty
annotation class Ann
class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
}
@get:Ann
class SomeClass {
@get:Ann
constructor()
@get:Ann
protected val simpleProperty: String = "text"
@get:Ann
protected var mutableProperty: String = "text"
@get:[Ann]
protected val simplePropertyWithAnnotationList: String = "text"
@get:Ann
protected val delegatedProperty: String by CustomDelegate()
@get:Ann
val propertyWithCustomGetter: Int
get() = 5
@get:Ann
fun annotationOnFunction(a: Int) = a + 5
fun anotherFun() {
@get:Ann
val localVariable = 5
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlin.reflect.KProperty
annotation class Ann
@@ -1,10 +1,10 @@
annotation class Ann
annotation class Second
@param:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@param:Ann<!>
class SomeClass {
@param:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@param:Ann<!>
constructor(@param:Ann a: String)
@param:Ann
@@ -1,39 +0,0 @@
import kotlin.reflect.KProperty
annotation class Ann
annotation class Second
class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
}
@property:Ann
class SomeClass {
@property:Ann
constructor(s: String)
@property:Ann
protected val p1: String = ""
@property:[Ann Second]
protected val p2: String = ""
@property:Ann
protected var p3: String = ""
@property:Ann
protected val p4: String by CustomDelegate()
@property:Ann
var propertyWithCustomSetter: Int
get() = 5
set(v) {}
@property:Ann
fun anotherFun() {
@property:Ann
val localVariable = 5
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlin.reflect.KProperty
annotation class Ann
@@ -1,9 +1,9 @@
annotation class Ann
@receiver:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@receiver:Ann<!>
class SomeClass {
@receiver:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@receiver:Ann<!>
constructor(@receiver:Ann a: String)
@receiver:Ann
@@ -7,7 +7,7 @@ class CustomDelegate {
operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
}
@set:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@set:Ann<!>
class SomeClass {
@set:Ann
@@ -27,7 +27,7 @@ class SomeClass {
get() = 5
set(v) {}
@set:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@set:Ann<!>
fun annotationOnFunction(a: Int) = a + 5
fun anotherFun() {
@@ -7,10 +7,10 @@ class CustomDelegate {
operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
}
@setparam:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@setparam:Ann<!>
class SomeClass {
@setparam:Ann
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@setparam:Ann<!>
constructor()
@setparam:Ann
@@ -1,12 +1,12 @@
package bar
<!MUST_BE_INITIALIZED!>@file:foo
<!MUST_BE_INITIALIZED!><!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@file:foo<!>
val prop<!>
@file:[bar baz]
@file:[<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>bar<!> <!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>baz<!>]
fun func() {}
@file:[baz]
@file:[<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>baz<!>]
class C
<!SYNTAX!>@file:<!>
@@ -1,6 +1,6 @@
@file:foo
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@file:foo<!>
@foo @bar
@file:[baz]
@file:[<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>baz<!>]
fun test() {}
annotation class foo
@@ -1,6 +1,6 @@
@file:foo
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@file:foo<!>
@foo @bar
@file: baz
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@file: baz<!>
fun test() {}
annotation class foo
@@ -1,9 +1,9 @@
// !LANGUAGE: +RestrictionOfWrongAnnotationsWithUseSiteTargetsOnTypes
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun test1(@file<!SYNTAX!><!> Suppress("") x: Int) {}
fun test1(<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@file<!SYNTAX!><!> Suppress("")<!> x: Int) {}
@file <!SYNTAX!>@<!>Suppress("")
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@file <!SYNTAX!>@<!>Suppress("")<!>
fun test2() {}
class OnType(x: @file<!SYNTAX!><!> Suppress("") Int)
@@ -1,9 +1,9 @@
// !LANGUAGE: -RestrictionOfWrongAnnotationsWithUseSiteTargetsOnTypes
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun test1(@file<!SYNTAX!><!> Suppress("") x: Int) {}
fun test1(<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@file<!SYNTAX!><!> Suppress("")<!> x: Int) {}
@file <!SYNTAX!>@<!>Suppress("")
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@file <!SYNTAX!>@<!>Suppress("")<!>
fun test2() {}
class OnType(x: @file<!SYNTAX!><!> Suppress("") Int)
@@ -45,12 +45,12 @@ annotation class fieldOrPropAnn
@Target(AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.VALUE_PARAMETER)
annotation class getSetAndParamAnn
public class B(@param:fieldOrPropAnn @fieldOrPropAnn val x: Int,
public class B(<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@param:fieldOrPropAnn<!> @fieldOrPropAnn val x: Int,
@property:fieldOrPropAnn @fieldOrPropAnn val y: Int) {
@fieldOrPropAnn @field:fieldOrPropAnn
val z: Int = 42
@getSetAndParamAnn
<!WRONG_ANNOTATION_TARGET!>@getSetAndParamAnn<!>
@setparam:getSetAndParamAnn
var w: Int
@getSetAndParamAnn @get:getSetAndParamAnn get() = 0