From 47c25982b62e13d3125d86d8c0a2ececba2e45e9 Mon Sep 17 00:00:00 2001 From: Vladimir Ilmov Date: Wed, 3 Jun 2020 16:17:53 +0200 Subject: [PATCH] (ResolveElementCache) KtAnnotationEntry resolveToDescriptor added --- .../idea/caches/resolve/extendedResolutionApi.kt | 10 ++++++++++ .../kotlin/idea/caches/resolve/resolutionApi.kt | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/caches/resolve/extendedResolutionApi.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/caches/resolve/extendedResolutionApi.kt index 8a3365ba5a5..a40e0493df9 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/caches/resolve/extendedResolutionApi.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/caches/resolve/extendedResolutionApi.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.caches.resolve import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingContext @@ -43,6 +44,15 @@ fun KtDeclaration.resolveToDescriptorIfAny( } } +fun KtAnnotationEntry.resolveToDescriptorIfAny( + resolutionFacade: ResolutionFacade, + bodyResolveMode: BodyResolveMode = BodyResolveMode.PARTIAL +): AnnotationDescriptor? { + //TODO: BodyResolveMode.PARTIAL is not quite safe! + val context = analyze(resolutionFacade, bodyResolveMode) + return context.get(BindingContext.ANNOTATION, this) +} + fun KtClassOrObject.resolveToDescriptorIfAny( resolutionFacade: ResolutionFacade, bodyResolveMode: BodyResolveMode = BodyResolveMode.PARTIAL 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 e76a8b8b157..3e2fc084322 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 @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.caches.resolve.KotlinCacheService import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.* @@ -92,6 +93,10 @@ fun KtFile.resolveImportReference(fqName: FqName): Collection