[LL FIR] FirDesignation: add workaround for LLFirLibraryOrLibrarySourceResolvableModuleSession
^KTIJ-24326
This commit is contained in:
committed by
Space Team
parent
473a2dc87c
commit
7e36a88b82
+10
-10
@@ -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<FirRegularClass>,
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user