From 7e36a88b82750edeea8c2ead4ee1690edcf3d8e7 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Tue, 21 Feb 2023 16:20:45 +0100 Subject: [PATCH] [LL FIR] FirDesignation: add workaround for LLFirLibraryOrLibrarySourceResolvableModuleSession ^KTIJ-24326 --- .../low/level/api/fir/api/FirDesignation.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 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 60c7f604323..120c0118106 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 @@ -1,15 +1,12 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.low.level.api.fir.api -import org.jetbrains.kotlin.KtRealPsiSourceElement -import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.llFirModuleData import org.jetbrains.kotlin.analysis.low.level.api.fir.providers.nullableJavaSymbolProvider -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirResolvableSession -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirLibraryOrLibrarySourceResolvableModuleSession import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirElementFinder import org.jetbrains.kotlin.analysis.low.level.api.fir.util.getContainingFile import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirEntry @@ -24,11 +21,10 @@ import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.utils.isLocal import org.jetbrains.kotlin.fir.diagnostics.ConeDestructuringDeclarationsOnTopLevel import org.jetbrains.kotlin.fir.resolve.providers.firProvider +import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.psi.KtClassOrObject -import org.jetbrains.kotlin.psi.psiUtil.parents class FirDesignationWithFile( path: List, @@ -118,9 +114,13 @@ private fun collectDesignationPathWithContainingClass(target: FirDeclaration, co val useSiteSession = getTargetSession(target) fun resolveChunk(classId: ClassId): FirRegularClass { - val declaration = useSiteSession.firProvider.getFirClassifierByFqName(classId) - ?: useSiteSession.nullableJavaSymbolProvider?.getClassLikeSymbolByClassId(classId)?.fir - ?: findKotlinStdlibClass(classId, target) + val declaration = if (useSiteSession is LLFirLibraryOrLibrarySourceResolvableModuleSession) { + useSiteSession.symbolProvider.getClassLikeSymbolByClassId(classId)?.fir + } else { + useSiteSession.firProvider.getFirClassifierByFqName(classId) + ?: useSiteSession.nullableJavaSymbolProvider?.getClassLikeSymbolByClassId(classId)?.fir + ?: findKotlinStdlibClass(classId, target) + } checkWithAttachmentBuilder( declaration is FirRegularClass,