From 2c4fbb1eb101648918780b66b60991426e2badee Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 11 Jan 2024 20:40:50 +0900 Subject: [PATCH] [Analysis API] Minor, move out fallback computation for designation path --- .../analysis/low/level/api/fir/api/FirDesignation.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt index 6101499a19f..e106a9b5d59 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt @@ -140,13 +140,16 @@ private fun collectDesignationPathWithContainingClass(target: FirDeclaration, co val firFile = target.getContainingFile() if (firFile != null && firFile.packageFqName == containingClassId.packageFqName) { - // We should do fallback to the heavy implementation if something goes wrong. - // For example, we can't be able to find an on-air declaration by this way - collectDesignationPathWithContainingClassByFirFile(firFile, containingClassId, target)?.let { - return it + val designationPath = collectDesignationPathWithContainingClassByFirFile(firFile, containingClassId, target) + if (designationPath != null) { + return designationPath } } + return collectDesignationPathWithContainingClassFallback(target, containingClassId) +} + +private fun collectDesignationPathWithContainingClassFallback(target: FirDeclaration, containingClassId: ClassId): List? { val useSiteSession = getTargetSession(target) fun resolveChunk(classId: ClassId): FirRegularClass {