From b8682f04f3a8b5cdec33018bcb28b38fb04c993c Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 29 Oct 2021 17:06:56 +0900 Subject: [PATCH] [FIR IDE] Treat enum entry members as local in AAPI/FE10 This commit partially fixes KtFe10SymbolByPsiTestGenerated.testEnumValueMember(). --- .../symbols/descriptorBased/base/Kt1DescUtils.kt | 12 +++++++++++- .../symbols/psiBased/base/KtFe10PsiSymbolUtils.kt | 8 ++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/Kt1DescUtils.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/Kt1DescUtils.kt index 572c9eb6c43..e920f34db48 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/Kt1DescUtils.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/Kt1DescUtils.kt @@ -303,7 +303,17 @@ internal fun CallableMemberDescriptor.calculateCallableId(allowLocal: Boolean): pathToLocal = if (localName.isNotEmpty()) FqName.fromSegments(localName.asReversed()) else null ) } - is ClassDescriptor -> className += current.name.asString() + is ClassDescriptor -> { + if (current.kind == ClassKind.ENUM_ENTRY) { + if (!allowLocal) { + return null + } + + localName += current.name.asString() + } else { + className += current.name.asString() + } + } is PropertyAccessorDescriptor -> {} // Filter out property accessors is CallableDescriptor -> { if (!allowLocal) { diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/base/KtFe10PsiSymbolUtils.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/base/KtFe10PsiSymbolUtils.kt index 21517d57e48..5ef1fed7b72 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/base/KtFe10PsiSymbolUtils.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/base/KtFe10PsiSymbolUtils.kt @@ -92,18 +92,18 @@ internal fun KtDeclaration.calculateCallableId(allowLocal: Boolean): CallableId? while (current != null) { when (current) { - is KtClassOrObject -> { - className += current.name ?: return null - } is KtPropertyAccessor -> { // Filter out property accessors } - is KtCallableDeclaration -> { + is KtCallableDeclaration, is KtEnumEntry -> { if (!allowLocal) { return null } localName += current.name ?: return null } + is KtClassOrObject -> { + className += current.name ?: return null + } } current = current.getElementParentDeclaration()