Forbid TYPE and TYPE_PARAMETER as possible OptIn targets

This commit is contained in:
Mikhail Glukhikh
2021-05-31 19:19:54 +03:00
committed by teamcityserver
parent 603afe89a2
commit 702d839c66
10 changed files with 66 additions and 27 deletions
@@ -5,13 +5,13 @@
package api
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
@Target(AnnotationTarget.TYPE, AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.TYPEALIAS,
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.TYPEALIAS,
AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.BINARY)
annotation class ExperimentalAPI
@ExperimentalAPI
@Target(AnnotationTarget.TYPE, AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.TYPEALIAS,
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.TYPEALIAS,
AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.BINARY)
annotation class EAnno
@@ -29,10 +29,10 @@ import api.*
fun parameter(@EAnno p: String) {}
@ExperimentalAPI
fun parameterType(p: @EAnno String) {}
fun parameterType(p: <!WRONG_ANNOTATION_TARGET!>@EAnno<!> String) {}
@ExperimentalAPI
fun returnType(): @EAnno Unit {}
fun returnType(): <!WRONG_ANNOTATION_TARGET!>@EAnno<!> Unit {}
@ExperimentalAPI
@EAnno val property = ""
@@ -74,10 +74,10 @@ import api.*
fun parameter(@EAnno p: String) {}
@OptIn(ExperimentalAPI::class)
fun parameterType(p: @EAnno String) {}
fun parameterType(p: <!WRONG_ANNOTATION_TARGET!>@EAnno<!> String) {}
@OptIn(ExperimentalAPI::class)
fun returnType(): @EAnno Unit {}
fun returnType(): <!WRONG_ANNOTATION_TARGET!>@EAnno<!> Unit {}
@OptIn(ExperimentalAPI::class)
@EAnno val property = ""
@@ -114,9 +114,9 @@ import api.*
fun parameter(@<!EXPERIMENTAL_API_USAGE!>EAnno<!> p: String) {}
fun parameterType(p: @<!EXPERIMENTAL_API_USAGE!>EAnno<!> String) {}
fun parameterType(p: <!WRONG_ANNOTATION_TARGET!>@<!EXPERIMENTAL_API_USAGE!>EAnno<!><!> String) {}
fun returnType(): @<!EXPERIMENTAL_API_USAGE!>EAnno<!> Unit {}
fun returnType(): <!WRONG_ANNOTATION_TARGET!>@<!EXPERIMENTAL_API_USAGE!>EAnno<!><!> Unit {}
@<!EXPERIMENTAL_API_USAGE!>EAnno<!> val property = ""