From 4f1b7b38b22e11cfa0745d96c00e381081dfa0d8 Mon Sep 17 00:00:00 2001 From: Vladimir Ilmov Date: Wed, 3 Jun 2020 14:09:24 +0200 Subject: [PATCH] (Resolve) lightweight resolve annotations relates to #KT-38653 --- .../jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt | 2 +- .../org/jetbrains/kotlin/resolve/lazy/BodyResolveMode.kt | 6 ++++-- .../jetbrains/kotlin/idea/project/ResolveElementCache.kt | 7 +++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt index 3e2fc084322..67da98879a1 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/caches/resolve/resolutionApi.kt @@ -94,7 +94,7 @@ fun KtFile.resolveImportReference(fqName: FqName): Collection, bodyResolveMode: BodyResolveMode = BodyResolveMode.FULL): BindingContext { - val elementsByAdditionalResolveElement: Map> = elements.groupBy { findElementOfAdditionalResolve(it) } + val elementsByAdditionalResolveElement: Map> = elements.groupBy { findElementOfAdditionalResolve(it, bodyResolveMode) } val bindingContexts = ArrayList() val declarationsToResolve = ArrayList() @@ -272,7 +272,10 @@ class ResolveElementCache( return CompositeBindingContext.create(bindingContexts) } - private fun findElementOfAdditionalResolve(element: KtElement): KtElement? { + private fun findElementOfAdditionalResolve(element: KtElement, bodyResolveMode: BodyResolveMode): KtElement? { + if (element is KtAnnotationEntry && bodyResolveMode == BodyResolveMode.PARTIAL_NO_ADDITIONAL) + return element + val elementOfAdditionalResolve = KtPsiUtil.getTopmostParentOfTypes( element, KtNamedFunction::class.java,