FIR IDE: rename reference classes to KtFir*Reference for consistency
This commit is contained in:
@@ -11,8 +11,8 @@ import com.intellij.openapi.progress.ProcessCanceledException
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.idea.fir.highlighter.visitors.FirAfterResolveHighlightingVisitor
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.highlighter.AbstractKotlinPsiChecker
|
||||
import org.jetbrains.kotlin.idea.highlighter.Diagnostic2Annotation
|
||||
import org.jetbrains.kotlin.idea.highlighter.IdeErrorMessages
|
||||
@@ -29,7 +29,7 @@ class KotlinFirPsiChecker : AbstractKotlinPsiChecker() {
|
||||
if (ApplicationManager.getApplication().isDispatchThread) {
|
||||
throw ProcessCanceledException()
|
||||
}
|
||||
val analysisSession = FirAnalysisSession(element)
|
||||
val analysisSession = KtFirAnalysisSession(element)
|
||||
|
||||
highlightDiagnostics(element, analysisSession, holder)
|
||||
|
||||
@@ -38,7 +38,7 @@ class KotlinFirPsiChecker : AbstractKotlinPsiChecker() {
|
||||
.forEach(element::accept)
|
||||
}
|
||||
|
||||
private fun highlightDiagnostics(element: KtElement, analysisSession: FrontendAnalysisSession, holder: AnnotationHolder) {
|
||||
private fun highlightDiagnostics(element: KtElement, analysisSession: KtAnalysisSession, holder: AnnotationHolder) {
|
||||
val diagnostics = analysisSession.getDiagnosticsForElement(element)
|
||||
if (diagnostics.isEmpty()) return
|
||||
|
||||
|
||||
+2
-2
@@ -8,12 +8,12 @@ package org.jetbrains.kotlin.idea.fir.highlighter.visitors
|
||||
import com.intellij.lang.annotation.AnnotationHolder
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.idea.KotlinIdeaAnalysisBundle
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ImplicitReceiverSmartcastKind
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
internal class ExpressionsSmartcastHighlightingVisitor(
|
||||
analysisSession: FrontendAnalysisSession,
|
||||
analysisSession: KtAnalysisSession,
|
||||
holder: AnnotationHolder
|
||||
) : FirAfterResolveHighlightingVisitor(analysisSession, holder) {
|
||||
override fun visitExpression(expression: KtExpression) {
|
||||
|
||||
+3
-3
@@ -6,17 +6,17 @@
|
||||
package org.jetbrains.kotlin.idea.fir.highlighter.visitors
|
||||
|
||||
import com.intellij.lang.annotation.AnnotationHolder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.highlighter.HighlightingVisitor
|
||||
|
||||
abstract class FirAfterResolveHighlightingVisitor(
|
||||
protected val analysisSession: FrontendAnalysisSession,
|
||||
protected val analysisSession: KtAnalysisSession,
|
||||
protected val holder: AnnotationHolder
|
||||
) : HighlightingVisitor(holder) {
|
||||
|
||||
companion object {
|
||||
fun createListOfVisitors(
|
||||
analysisSession: FrontendAnalysisSession,
|
||||
analysisSession: KtAnalysisSession,
|
||||
holder: AnnotationHolder
|
||||
): List<FirAfterResolveHighlightingVisitor> = listOf(
|
||||
TypeHighlightingVisitor(analysisSession, holder),
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.serialization.deserialization.KOTLIN_SUSPEND_BUILT_I
|
||||
import org.jetbrains.kotlin.idea.highlighter.KotlinHighlightingColors as Colors
|
||||
|
||||
internal class FunctionCallHighlightingVisitor(
|
||||
analysisSession: FrontendAnalysisSession,
|
||||
analysisSession: KtAnalysisSession,
|
||||
holder: AnnotationHolder
|
||||
) : FirAfterResolveHighlightingVisitor(analysisSession, holder) {
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
|
||||
+2
-2
@@ -11,14 +11,14 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import org.jetbrains.kotlin.idea.fir.highlighter.isAnnotationClass
|
||||
import org.jetbrains.kotlin.idea.fir.highlighter.textAttributesKeyForTypeDeclaration
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.highlighter.NameHighlighter
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.idea.highlighter.KotlinHighlightingColors as Colors
|
||||
|
||||
internal class TypeHighlightingVisitor(
|
||||
analysisSession: FrontendAnalysisSession,
|
||||
analysisSession: KtAnalysisSession,
|
||||
holder: AnnotationHolder
|
||||
) : FirAfterResolveHighlightingVisitor(analysisSession, holder) {
|
||||
override fun visitSimpleNameExpression(expression: KtSimpleNameExpression) {
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@ import com.intellij.psi.util.PsiUtilCore
|
||||
import com.intellij.psi.util.parentOfType
|
||||
import org.jetbrains.kotlin.idea.KotlinIdeaAnalysisBundle
|
||||
import org.jetbrains.kotlin.idea.fir.highlighter.textAttributesKeyForPropertyDeclaration
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.highlighter.NameHighlighter
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.idea.highlighter.KotlinHighlightingColors as Colors
|
||||
|
||||
internal class VariableReferenceHighlightingVisitor(
|
||||
analysisSession: FrontendAnalysisSession,
|
||||
analysisSession: KtAnalysisSession,
|
||||
holder: AnnotationHolder
|
||||
) : FirAfterResolveHighlightingVisitor(analysisSession, holder) {
|
||||
override fun visitSimpleNameExpression(expression: KtSimpleNameExpression) {
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
abstract class FrontendAnalysisSession(project: Project) : Invalidatable {
|
||||
abstract class KtAnalysisSession(project: Project) : Invalidatable {
|
||||
protected open val validityToken = ReadActionConfinementValidityToken(project)
|
||||
override fun isValid(): Boolean = validityToken.isValid()
|
||||
override fun invalidationReason(): String = validityToken.invalidationReason()
|
||||
+3
-3
@@ -10,15 +10,15 @@ import org.jetbrains.kotlin.idea.references.KtReference
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleReference
|
||||
|
||||
interface KtSymbolBasedReference : KtReference {
|
||||
fun resolveToSymbols(analysisSession: FrontendAnalysisSession): Collection<KtSymbol>
|
||||
fun resolveToSymbols(analysisSession: KtAnalysisSession): Collection<KtSymbol>
|
||||
}
|
||||
|
||||
fun KtReference.resolveToSymbols(analysisSession: FrontendAnalysisSession): Collection<KtSymbol> {
|
||||
fun KtReference.resolveToSymbols(analysisSession: KtAnalysisSession): Collection<KtSymbol> {
|
||||
check(this is KtSymbolBasedReference) { "To get reference symbol the one should be KtSymbolBasedReference" }
|
||||
return resolveToSymbols(analysisSession)
|
||||
}
|
||||
|
||||
fun KtSimpleReference<*>.resolveToSymbol(analysisSession: FrontendAnalysisSession): KtSymbol? {
|
||||
fun KtSimpleReference<*>.resolveToSymbol(analysisSession: KtAnalysisSession): KtSymbol? {
|
||||
check(this is KtSymbolBasedReference) { "To get reference symbol the one should be KtSymbolBasedReference" }
|
||||
return resolveToSymbols(analysisSession).singleOrNull()
|
||||
}
|
||||
+4
-4
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.idea.fir.*
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.LowLevelFirApiFacade
|
||||
import org.jetbrains.kotlin.idea.frontend.api.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.FirKtSymbolProvider
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirSymbolProvider
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbolProvider
|
||||
@@ -32,9 +32,9 @@ import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
class FirAnalysisSession(
|
||||
class KtFirAnalysisSession(
|
||||
element: KtElement
|
||||
) : FrontendAnalysisSession(element.project) {
|
||||
) : KtAnalysisSession(element.project) {
|
||||
internal val token get() = validityToken
|
||||
|
||||
internal val firSymbolBuilder = KtSymbolByFirBuilder(
|
||||
@@ -44,7 +44,7 @@ class FirAnalysisSession(
|
||||
)
|
||||
|
||||
override val symbolProvider: KtSymbolProvider =
|
||||
FirKtSymbolProvider(
|
||||
KtFirSymbolProvider(
|
||||
this,
|
||||
element.session.firSymbolProvider,
|
||||
firSymbolBuilder
|
||||
+1
-1
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
internal class FirKtSymbolProvider(
|
||||
internal class KtFirSymbolProvider(
|
||||
override val token: Invalidatable,
|
||||
firSymbolProvider: FirSymbolProvider,
|
||||
private val firSymbolBuilder: KtSymbolByFirBuilder
|
||||
+1
-1
@@ -82,7 +82,7 @@ internal object FirReferenceResolveHelper {
|
||||
}
|
||||
|
||||
internal fun resolveSimpleNameReference(
|
||||
ref: KtSimpleNameReferenceFirImpl,
|
||||
ref: KtFirSimpleNameReference,
|
||||
symbolBuilder: KtSymbolByFirBuilder
|
||||
): Collection<KtSymbol> {
|
||||
val expression = ref.expression
|
||||
|
||||
+6
-6
@@ -6,18 +6,18 @@
|
||||
package org.jetbrains.kotlin.idea.references
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtImportAlias
|
||||
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
||||
|
||||
internal class KtSimpleNameReferenceFirImpl(
|
||||
internal class KtFirSimpleNameReference(
|
||||
expression: KtSimpleNameExpression
|
||||
) : KtSimpleNameReference(expression), FirKtReference {
|
||||
override fun resolveToSymbols(analysisSession: FrontendAnalysisSession): Collection<KtSymbol> {
|
||||
check(analysisSession is FirAnalysisSession)
|
||||
) : KtSimpleNameReference(expression), KtFirReference {
|
||||
override fun resolveToSymbols(analysisSession: KtAnalysisSession): Collection<KtSymbol> {
|
||||
check(analysisSession is KtFirAnalysisSession)
|
||||
return FirReferenceResolveHelper.resolveSimpleNameReference(this, analysisSession.firSymbolBuilder)
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -8,11 +8,11 @@ package org.jetbrains.kotlin.idea.references
|
||||
class KotlinFirReferenceContributor : KotlinReferenceProviderContributor {
|
||||
override fun registerReferenceProviders(registrar: KotlinPsiReferenceRegistrar) {
|
||||
with(registrar) {
|
||||
registerProvider(factory = ::KtSimpleNameReferenceFirImpl)
|
||||
registerProvider(factory = ::KtForLoopInReferenceFirImpl)
|
||||
registerProvider(factory = ::KtInvokeFunctionReferenceFirImpl)
|
||||
registerProvider(factory = ::KtPropertyDelegationMethodsReferenceFirImpl)
|
||||
registerProvider(factory = ::KtDestructuringDeclarationReferenceFirImpl)
|
||||
registerProvider(factory = ::KtFirSimpleNameReference)
|
||||
registerProvider(factory = ::KtFirForLoopInReference)
|
||||
registerProvider(factory = ::KtFirInvokeFunctionReference)
|
||||
registerProvider(factory = ::KtFirPropertyDelegationMethodsReference)
|
||||
registerProvider(factory = ::KtFirDestructuringDeclarationReference)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -9,19 +9,19 @@ import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||
import org.jetbrains.kotlin.idea.fir.getCalleeSymbol
|
||||
import org.jetbrains.kotlin.idea.fir.getOrBuildFirSafe
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.buildSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
||||
|
||||
class KtDestructuringDeclarationReferenceFirImpl(
|
||||
class KtFirDestructuringDeclarationReference(
|
||||
element: KtDestructuringDeclarationEntry
|
||||
) : KtDestructuringDeclarationReference(element), FirKtReference {
|
||||
) : KtDestructuringDeclarationReference(element), KtFirReference {
|
||||
override fun canRename(): Boolean = false //todo
|
||||
|
||||
override fun resolveToSymbols(analysisSession: FrontendAnalysisSession): Collection<KtSymbol> {
|
||||
check(analysisSession is FirAnalysisSession)
|
||||
override fun resolveToSymbols(analysisSession: KtAnalysisSession): Collection<KtSymbol> {
|
||||
check(analysisSession is KtFirAnalysisSession)
|
||||
val fir = expression.getOrBuildFirSafe<FirProperty>() ?: return emptyList()
|
||||
val componentFunctionSymbol = (fir.initializer as? FirComponentCall)?.getCalleeSymbol() ?: return emptyList()
|
||||
return listOfNotNull(componentFunctionSymbol.fir.buildSymbol(analysisSession.firSymbolBuilder))
|
||||
+5
-6
@@ -11,16 +11,15 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirWhileLoop
|
||||
import org.jetbrains.kotlin.idea.fir.getOrBuildFirSafe
|
||||
import org.jetbrains.kotlin.idea.fir.getResolvedSymbolOfNameReference
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.buildSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.psi.KtForExpression
|
||||
|
||||
open class KtForLoopInReferenceFirImpl(expression: KtForExpression) : KtForLoopInReference(expression), FirKtReference {
|
||||
|
||||
override fun resolveToSymbols(analysisSession: FrontendAnalysisSession): Collection<KtSymbol> {
|
||||
check(analysisSession is FirAnalysisSession)
|
||||
open class KtFirForLoopInReference(expression: KtForExpression) : KtForLoopInReference(expression), KtFirReference {
|
||||
override fun resolveToSymbols(analysisSession: KtAnalysisSession): Collection<KtSymbol> {
|
||||
check(analysisSession is KtFirAnalysisSession)
|
||||
val firLoop = expression.getOrBuildFirSafe<FirWhileLoop>() ?: return emptyList()
|
||||
val condition = firLoop.condition as? FirFunctionCall
|
||||
val iterator = run {
|
||||
+3
-4
@@ -5,19 +5,18 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.references
|
||||
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.VariableAsFunctionLikeCallInfo
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||
import org.jetbrains.kotlin.psi.KtExpression
|
||||
|
||||
class KtInvokeFunctionReferenceFirImpl(expression: KtCallExpression) : KtInvokeFunctionReference(expression), FirKtReference {
|
||||
class KtFirInvokeFunctionReference(expression: KtCallExpression) : KtInvokeFunctionReference(expression), KtFirReference {
|
||||
override fun doRenameImplicitConventionalCall(newName: String?): KtExpression {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun resolveToSymbols(analysisSession: FrontendAnalysisSession): Collection<KtSymbol> {
|
||||
override fun resolveToSymbols(analysisSession: KtAnalysisSession): Collection<KtSymbol> {
|
||||
val call = analysisSession.resolveCall(expression) ?: return emptyList()
|
||||
if (call is VariableAsFunctionLikeCallInfo) {
|
||||
return listOf(call.invokeFunction)
|
||||
+6
-6
@@ -11,18 +11,18 @@ import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirReturnExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||
import org.jetbrains.kotlin.idea.fir.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.buildSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtPropertyDelegate
|
||||
|
||||
class KtPropertyDelegationMethodsReferenceFirImpl(
|
||||
class KtFirPropertyDelegationMethodsReference(
|
||||
element: KtPropertyDelegate
|
||||
) : KtPropertyDelegationMethodsReference(element), FirKtReference {
|
||||
override fun resolveToSymbols(analysisSession: FrontendAnalysisSession): Collection<KtSymbol> {
|
||||
check(analysisSession is FirAnalysisSession)
|
||||
) : KtPropertyDelegationMethodsReference(element), KtFirReference {
|
||||
override fun resolveToSymbols(analysisSession: KtAnalysisSession): Collection<KtSymbol> {
|
||||
check(analysisSession is KtFirAnalysisSession)
|
||||
val property = (expression.parent as? KtElement)?.getOrBuildFirSafe<FirProperty>() ?: return emptyList()
|
||||
if (property.delegate == null) return emptyList()
|
||||
val getValueSymbol = (property.getter?.singleStatementOfType<FirReturnExpression>()?.result as? FirFunctionCall)?.getCalleeSymbol()
|
||||
+4
-4
@@ -6,13 +6,13 @@
|
||||
package org.jetbrains.kotlin.idea.references
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
|
||||
interface FirKtReference : KtReference {
|
||||
fun resolveToSymbols(analysisSession: FrontendAnalysisSession): Collection<KtSymbol>
|
||||
interface KtFirReference : KtReference {
|
||||
fun resolveToSymbols(analysisSession: KtAnalysisSession): Collection<KtSymbol>
|
||||
|
||||
fun getResolvedToPsi(analysisSession: FrontendAnalysisSession): Collection<PsiElement> =
|
||||
fun getResolvedToPsi(analysisSession: KtAnalysisSession): Collection<PsiElement> =
|
||||
resolveToSymbols(analysisSession).mapNotNull(KtSymbol::psi)
|
||||
|
||||
override val resolver get() = KtFirReferenceResolver
|
||||
+3
-3
@@ -11,18 +11,18 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementResolveResult
|
||||
import com.intellij.psi.ResolveResult
|
||||
import com.intellij.psi.impl.source.resolve.ResolveCache
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
|
||||
object KtFirReferenceResolver : ResolveCache.PolyVariantResolver<KtReference> {
|
||||
class KotlinResolveResult(element: PsiElement) : PsiElementResolveResult(element)
|
||||
|
||||
override fun resolve(ref: KtReference, incompleteCode: Boolean): Array<ResolveResult> {
|
||||
check(ref is FirKtReference) { "reference should be FirKtReference, but was ${ref::class}" }
|
||||
check(ref is KtFirReference) { "reference should be FirKtReference, but was ${ref::class}" }
|
||||
check(ref is AbstractKtReference<*>) { "reference should be AbstractKtReference, but was ${ref::class}" }
|
||||
if (ApplicationManager.getApplication().isDispatchThread) {
|
||||
throw ProcessCanceledException()
|
||||
}
|
||||
val analysisSession = FirAnalysisSession(ref.expression)
|
||||
val analysisSession = KtFirAnalysisSession(ref.expression)
|
||||
val resolveToPsiElements = ref.getResolvedToPsi(analysisSession)
|
||||
return resolveToPsiElements.map { KotlinResolveResult(it) }.toTypedArray()
|
||||
}
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ abstract class AbstractResolveCallTest : @Suppress("DEPRECATION") KotlinLightCod
|
||||
}
|
||||
|
||||
val actualText = executeOnPooledThreadInReadAction {
|
||||
val analysisSession = FirAnalysisSession(file as KtFile)
|
||||
val analysisSession = KtFirAnalysisSession(file as KtFile)
|
||||
val callInfos = elements.map { element ->
|
||||
when (element) {
|
||||
is KtCallExpression -> analysisSession.resolveCall(element)
|
||||
|
||||
+2
-3
@@ -6,10 +6,9 @@
|
||||
package org.jetbrains.kotlin.idea.frontend.api.symbols
|
||||
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.psi.PsiRecursiveElementWalkingVisitor
|
||||
import org.jetbrains.kotlin.idea.addExternalTestFiles
|
||||
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -24,7 +23,7 @@ abstract class AbstractSymbolsByPsiBuildingTest : KotlinLightCodeInsightFixtureT
|
||||
val ktFile = myFixture.configureByText(file.name, FileUtil.loadFile(file)) as KtFile
|
||||
|
||||
val renderedSymbols = executeOnPooledThreadInReadAction {
|
||||
val analysisSession = FirAnalysisSession(ktFile)
|
||||
val analysisSession = KtFirAnalysisSession(ktFile)
|
||||
val declarationSymbols = ktFile.collectDescendantsOfType<KtDeclaration>().map { declaration ->
|
||||
analysisSession.symbolProvider.getSymbol(declaration)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user