Report EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET without explicit @Target

#KT-48349 Fixed
This commit is contained in:
Mikhail Glukhikh
2021-08-20 20:07:18 +03:00
committed by TeamCityServer
parent 865fccdd29
commit 7b0e5927cb
8 changed files with 102 additions and 1 deletions
@@ -59,7 +59,8 @@ class ExperimentalMarkerDeclarationAnnotationChecker(private val module: ModuleD
}
val annotationClass = annotation.annotationClass ?: continue
if (annotationClass.annotations.any { it.fqName in OptInNames.EXPERIMENTAL_FQ_NAMES }) {
val possibleTargets = AnnotationChecker.applicableTargetSet(annotationClass).orEmpty().intersect(actualTargets)
val applicableTargets = AnnotationChecker.applicableTargetSet(annotationClass) ?: KotlinTarget.DEFAULT_TARGET_SET
val possibleTargets = applicableTargets.intersect(actualTargets)
val annotationUseSiteTarget = entry.useSiteTarget?.getAnnotationUseSiteTarget()
if (PROPERTY_GETTER in possibleTargets ||
annotationUseSiteTarget == AnnotationUseSiteTarget.PROPERTY_GETTER