[FE 1.0] Report WRONG_ANNOTATION_TARGET on annotations on type arguments

^KT-47772 Fixed
This commit is contained in:
Dmitriy Novozhilov
2021-07-19 11:09:02 +03:00
committed by teamcityserver
parent 046d886850
commit c304363aea
7 changed files with 68 additions and 0 deletions
@@ -101,6 +101,12 @@ class AnnotationChecker(
fun checkExpression(expression: KtExpression, trace: BindingTrace) {
checkEntries(expression.getAnnotationEntries(), getActualTargetList(expression, null, trace.bindingContext), trace)
if (expression is KtCallElement && languageVersionSettings.supportsFeature(ProperCheckAnnotationsTargetInTypeUsePositions)) {
val typeArguments = expression.typeArguments.mapNotNull { it.typeReference }
for (typeArgument in typeArguments) {
checkEntries(typeArgument.annotationEntries, getActualTargetList(typeArgument, null, trace.bindingContext), trace)
}
}
if (expression is KtLambdaExpression) {
for (parameter in expression.valueParameters) {
parameter.typeReference?.let { check(it, trace) }