From 213445347d77f8e845b1f04d2fe923877d2fcce5 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 23 May 2022 16:14:59 +0200 Subject: [PATCH] Fix PsiType for local class in FE10 Analysis API After this commit, Fe10IdeNormalAnalysisSourceModuleAnalysisApiPsiTypeProviderTestGenerated test group passes --- .../descriptors/utils/KtFe10JvmTypeMapperContext.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/utils/KtFe10JvmTypeMapperContext.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/utils/KtFe10JvmTypeMapperContext.kt index 90eb745f103..47d69c7bf3c 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/utils/KtFe10JvmTypeMapperContext.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/utils/KtFe10JvmTypeMapperContext.kt @@ -57,12 +57,12 @@ internal class KtFe10JvmTypeMapperContext(private val resolveSession: ResolveSes return when (val declaration = typeConstructor.declarationDescriptor) { is TypeParameterDescriptor -> declaration.name.asString().sanitize() is TypeAliasDescriptor -> getClassInternalName(declaration.expandedType.constructor) - is ClassDescriptor -> computeNonLocalClassInternalName(declaration) ?: computeSupertypeInternalName(declaration) + is ClassDescriptor -> computeClassInternalName(declaration) ?: computeSupertypeInternalName(declaration) else -> error("Unexpected declaration type: $declaration") } } - private fun computeNonLocalClassInternalName(descriptor: ClassDescriptor): String? { + private fun computeClassInternalName(descriptor: ClassDescriptor): String? { val selfName = descriptor.name.takeIf { !it.isSpecial } ?: return null return when (val parent = descriptor.containingDeclaration) { @@ -71,10 +71,10 @@ internal class KtFe10JvmTypeMapperContext(private val resolveSession: ResolveSes "$packageInternalName/$selfName" } is ClassDescriptor -> { - val parentInternalName = computeNonLocalClassInternalName(parent) + val parentInternalName = computeClassInternalName(parent) if (parentInternalName != null) "$parentInternalName$$selfName" else null } - else -> null + else -> selfName.asString() } } @@ -89,12 +89,12 @@ internal class KtFe10JvmTypeMapperContext(private val resolveSession: ResolveSes } if (declaration.kind != ClassKind.INTERFACE && declaration.kind != ClassKind.ANNOTATION_CLASS) { - val internalName = computeNonLocalClassInternalName(declaration) + val internalName = computeClassInternalName(declaration) if (internalName != null) { return internalName } } else if (interfaceSupertypeInternalName == null) { - interfaceSupertypeInternalName = computeNonLocalClassInternalName(declaration) + interfaceSupertypeInternalName = computeClassInternalName(declaration) } }