From f7b4fa64eac19b419cf6e8f648a9457f2db80541 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 28 Oct 2021 18:34:54 +0900 Subject: [PATCH] [FIR IDE] Fix Fe10PsiKtEnumEntrySymbol.annotatedType in AAPI/FE10 'annotatedType' should return type of the enum itself, not of its entry. This commit fixes KtFe10SymbolByPsiTestGenerated.testEnum(). --- .../symbols/psiBased/KtFe10PsiEnumEntrySymbol.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiEnumEntrySymbol.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiEnumEntrySymbol.kt index eb9549bae20..eec5d7baafa 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiEnumEntrySymbol.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiEnumEntrySymbol.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.analysis.api.withValidityAssertion import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name @@ -47,7 +48,12 @@ internal class KtFe10PsiEnumEntrySymbol( override val annotatedType: KtTypeAndAnnotations get() = withValidityAssertion { - descriptor?.defaultType?.toKtTypeAndAnnotations(analysisContext) ?: createErrorTypeAndAnnotations() + val containingDescriptor = descriptor?.containingDeclaration + if (containingDescriptor is ClassDescriptor && containingDescriptor.kind == ClassKind.ENUM_CLASS) { + return containingDescriptor.defaultType.toKtTypeAndAnnotations(analysisContext) + } else { + createErrorTypeAndAnnotations() + } } override val name: Name