Forbid @Synchronized annotation on suspend functions

and lambdas. With warning for now.
 #KT-27333
This commit is contained in:
Ilmir Usmanov
2021-08-25 17:53:48 +02:00
parent 97176b5d60
commit 92fac304e7
13 changed files with 127 additions and 31 deletions
@@ -101,7 +101,12 @@ class AnnotationChecker(
}
fun checkExpression(expression: KtExpression, trace: BindingTrace) {
checkEntries(expression.getAnnotationEntries(), getActualTargetList(expression, null, trace.bindingContext), trace)
checkEntries(
expression.getAnnotationEntries(),
getActualTargetList(expression, null, trace.bindingContext),
trace,
expression.parent as? KtAnnotated
)
if (expression is KtCallElement && languageVersionSettings.supportsFeature(ProperCheckAnnotationsTargetInTypeUsePositions)) {
val typeArguments = expression.typeArguments.mapNotNull { it.typeReference }
for (typeArgument in typeArguments) {