From 19e38bbc725ec68c9d40bc5c4ad8945266df7231 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 20 Dec 2017 18:33:47 +0100 Subject: [PATCH] Do not run annotation checkers for every non-annotated element --- .../src/org/jetbrains/kotlin/resolve/AnnotationChecker.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationChecker.kt index f6e2d235380..c52af26916f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationChecker.kt @@ -44,7 +44,6 @@ class AnnotationChecker( private val additionalCheckers: Iterable, private val languageVersionSettings: LanguageVersionSettings ) { - fun check(annotated: KtAnnotated, trace: BindingTrace, descriptor: DeclarationDescriptor? = null) { val actualTargets = getActualTargetList(annotated, descriptor, trace) checkEntries(annotated.annotationEntries, actualTargets, trace, annotated) @@ -106,6 +105,8 @@ class AnnotationChecker( trace: BindingTrace, annotated: KtAnnotated? = null ) { + if (entries.isEmpty()) return + val entryTypesWithAnnotations = hashMapOf>() for (entry in entries) { @@ -124,7 +125,10 @@ class AnnotationChecker( existingTargetsForAnnotation.add(useSiteTarget) } - additionalCheckers.forEach { it.checkEntries(entries, actualTargets.defaultTargets, trace) } + + for (checker in additionalCheckers) { + checker.checkEntries(entries, actualTargets.defaultTargets, trace) + } } private fun checkAnnotationEntry(entry: KtAnnotationEntry, actualTargets: TargetList, trace: BindingTrace) {