FIR IDE: rename AnalysisSessionFirImpl -> FirAnalysisSession
This commit is contained in:
@@ -10,7 +10,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||||
import org.jetbrains.kotlin.idea.fir.highlighter.visitors.FirAfterResolveHighlightingVisitor
|
import org.jetbrains.kotlin.idea.fir.highlighter.visitors.FirAfterResolveHighlightingVisitor
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.FrontendAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.AnalysisSessionFirImpl
|
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.highlighter.AbstractKotlinPsiChecker
|
import org.jetbrains.kotlin.idea.highlighter.AbstractKotlinPsiChecker
|
||||||
import org.jetbrains.kotlin.idea.highlighter.Diagnostic2Annotation
|
import org.jetbrains.kotlin.idea.highlighter.Diagnostic2Annotation
|
||||||
import org.jetbrains.kotlin.idea.highlighter.IdeErrorMessages
|
import org.jetbrains.kotlin.idea.highlighter.IdeErrorMessages
|
||||||
@@ -24,7 +24,7 @@ class KotlinFirPsiChecker : AbstractKotlinPsiChecker() {
|
|||||||
|
|
||||||
override fun annotateElement(element: PsiElement, containingFile: KtFile, holder: AnnotationHolder) {
|
override fun annotateElement(element: PsiElement, containingFile: KtFile, holder: AnnotationHolder) {
|
||||||
if (element !is KtElement) return
|
if (element !is KtElement) return
|
||||||
val analysisSession = AnalysisSessionFirImpl()
|
val analysisSession = FirAnalysisSession()
|
||||||
|
|
||||||
highlightDiagnostics(element, analysisSession, holder)
|
highlightDiagnostics(element, analysisSession, holder)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -29,11 +29,11 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.types.model.KotlinTypeMarker
|
import org.jetbrains.kotlin.types.model.KotlinTypeMarker
|
||||||
|
|
||||||
class AnalysisSessionFirImpl : FrontendAnalysisSession() {
|
class FirAnalysisSession : FrontendAnalysisSession() {
|
||||||
|
|
||||||
override fun getSmartCastedToTypes(expression: KtExpression): Collection<KotlinTypeMarker>? {
|
override fun getSmartCastedToTypes(expression: KtExpression): Collection<KotlinTypeMarker>? {
|
||||||
// TODO filter out not used smartcasts
|
// TODO filter out not used smartcasts
|
||||||
return (expression.toFir() as? FirExpressionWithSmartcast)?.typesFromSmartCast
|
return expression.getOrBuildFirSafe<FirExpressionWithSmartcast>()?.typesFromSmartCast
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
@@ -6,10 +6,10 @@
|
|||||||
package org.jetbrains.kotlin.idea.references
|
package org.jetbrains.kotlin.idea.references
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.AnalysisSessionFirImpl
|
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||||
|
|
||||||
interface FirKtReference : KtReference {
|
interface FirKtReference : KtReference {
|
||||||
fun getResolvedToPsi(analysisSession: AnalysisSessionFirImpl): Collection<PsiElement>
|
fun getResolvedToPsi(analysisSession: FirAnalysisSession): Collection<PsiElement>
|
||||||
|
|
||||||
override val resolver get() = KtFirReferenceResolver
|
override val resolver get() = KtFirReferenceResolver
|
||||||
}
|
}
|
||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.idea.references
|
package org.jetbrains.kotlin.idea.references
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.AnalysisSessionFirImpl
|
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.KtImportAlias
|
import org.jetbrains.kotlin.psi.KtImportAlias
|
||||||
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
||||||
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
|||||||
internal class KtSimpleNameReferenceFirImpl(
|
internal class KtSimpleNameReferenceFirImpl(
|
||||||
expression: KtSimpleNameExpression
|
expression: KtSimpleNameExpression
|
||||||
) : KtSimpleNameReference(expression), FirKtReference {
|
) : KtSimpleNameReference(expression), FirKtReference {
|
||||||
override fun getResolvedToPsi(analysisSession: AnalysisSessionFirImpl) = FirReferenceResolveHelper.resolveSimpleNameReference(this)
|
override fun getResolvedToPsi(analysisSession: FirAnalysisSession) = FirReferenceResolveHelper.resolveSimpleNameReference(this)
|
||||||
|
|
||||||
override fun doCanBeReferenceTo(candidateTarget: PsiElement): Boolean {
|
override fun doCanBeReferenceTo(candidateTarget: PsiElement): Boolean {
|
||||||
return true // TODO
|
return true // TODO
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||||
import org.jetbrains.kotlin.idea.fir.*
|
import org.jetbrains.kotlin.idea.fir.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.AnalysisSessionFirImpl
|
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||||
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
||||||
|
|
||||||
class KtDestructuringDeclarationReferenceFirImpl(
|
class KtDestructuringDeclarationReferenceFirImpl(
|
||||||
@@ -18,7 +18,7 @@ class KtDestructuringDeclarationReferenceFirImpl(
|
|||||||
override fun canRename(): Boolean = false //todo
|
override fun canRename(): Boolean = false //todo
|
||||||
|
|
||||||
override fun getResolvedToPsi(
|
override fun getResolvedToPsi(
|
||||||
analysisSession: AnalysisSessionFirImpl
|
analysisSession: FirAnalysisSession
|
||||||
): Collection<PsiElement> {
|
): Collection<PsiElement> {
|
||||||
val fir = expression.getOrBuildFirSafe<FirProperty>() ?: return emptyList()
|
val fir = expression.getOrBuildFirSafe<FirProperty>() ?: return emptyList()
|
||||||
val componentFunctionSymbol = (fir.initializer as? FirComponentCall)?.getCalleeSymbol() ?: return emptyList()
|
val componentFunctionSymbol = (fir.initializer as? FirComponentCall)?.getCalleeSymbol() ?: return emptyList()
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import com.intellij.psi.PsiElementResolveResult
|
import com.intellij.psi.PsiElementResolveResult
|
||||||
import com.intellij.psi.ResolveResult
|
import com.intellij.psi.ResolveResult
|
||||||
import com.intellij.psi.impl.source.resolve.ResolveCache
|
import com.intellij.psi.impl.source.resolve.ResolveCache
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.AnalysisSessionFirImpl
|
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||||
|
|
||||||
object KtFirReferenceResolver : ResolveCache.PolyVariantResolver<KtReference> {
|
object KtFirReferenceResolver : ResolveCache.PolyVariantResolver<KtReference> {
|
||||||
class KotlinResolveResult(element: PsiElement) : PsiElementResolveResult(element)
|
class KotlinResolveResult(element: PsiElement) : PsiElementResolveResult(element)
|
||||||
@@ -17,7 +17,7 @@ object KtFirReferenceResolver : ResolveCache.PolyVariantResolver<KtReference> {
|
|||||||
override fun resolve(ref: KtReference, incompleteCode: Boolean): Array<ResolveResult> {
|
override fun resolve(ref: KtReference, incompleteCode: Boolean): Array<ResolveResult> {
|
||||||
check(ref is FirKtReference) { "reference should be FirKtReference, but was ${ref::class}" }
|
check(ref is FirKtReference) { "reference should be FirKtReference, but was ${ref::class}" }
|
||||||
check(ref is AbstractKtReference<*>) { "reference should be AbstractKtReference, but was ${ref::class}" }
|
check(ref is AbstractKtReference<*>) { "reference should be AbstractKtReference, but was ${ref::class}" }
|
||||||
val analysisSession = AnalysisSessionFirImpl()
|
val analysisSession = FirAnalysisSession()
|
||||||
val resolveToPsiElements = ref.getResolvedToPsi(analysisSession)
|
val resolveToPsiElements = ref.getResolvedToPsi(analysisSession)
|
||||||
return resolveToPsiElements.map { KotlinResolveResult(it) }.toTypedArray()
|
return resolveToPsiElements.map { KotlinResolveResult(it) }.toTypedArray()
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.idea.references
|
package org.jetbrains.kotlin.idea.references
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
@@ -14,12 +13,12 @@ import org.jetbrains.kotlin.fir.expressions.FirWhileLoop
|
|||||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||||
import org.jetbrains.kotlin.idea.fir.getOrBuildFirSafe
|
import org.jetbrains.kotlin.idea.fir.getOrBuildFirSafe
|
||||||
import org.jetbrains.kotlin.idea.fir.getResolvedSymbolOfNameReference
|
import org.jetbrains.kotlin.idea.fir.getResolvedSymbolOfNameReference
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.AnalysisSessionFirImpl
|
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||||
import org.jetbrains.kotlin.psi.KtForExpression
|
import org.jetbrains.kotlin.psi.KtForExpression
|
||||||
|
|
||||||
open class KtForLoopInReferenceFirImpl(expression: KtForExpression) : KtForLoopInReference(expression), FirKtReference {
|
open class KtForLoopInReferenceFirImpl(expression: KtForExpression) : KtForLoopInReference(expression), FirKtReference {
|
||||||
override fun getResolvedToPsi(
|
override fun getResolvedToPsi(
|
||||||
analysisSession: AnalysisSessionFirImpl
|
analysisSession: FirAnalysisSession
|
||||||
): Collection<PsiElement> {
|
): Collection<PsiElement> {
|
||||||
val firLoop = expression.getOrBuildFirSafe<FirWhileLoop>() ?: return emptyList()
|
val firLoop = expression.getOrBuildFirSafe<FirWhileLoop>() ?: return emptyList()
|
||||||
val condition = firLoop.condition as? FirFunctionCall
|
val condition = firLoop.condition as? FirFunctionCall
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.references
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.VariableAsFunctionLikeCallInfo
|
import org.jetbrains.kotlin.idea.frontend.api.VariableAsFunctionLikeCallInfo
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.AnalysisSessionFirImpl
|
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||||
import org.jetbrains.kotlin.psi.KtExpression
|
import org.jetbrains.kotlin.psi.KtExpression
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ class KtInvokeFunctionReferenceFirImpl(expression: KtCallExpression) : KtInvokeF
|
|||||||
TODO("Not yet implemented")
|
TODO("Not yet implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getResolvedToPsi(analysisSession: AnalysisSessionFirImpl): Collection<PsiElement> {
|
override fun getResolvedToPsi(analysisSession: FirAnalysisSession): Collection<PsiElement> {
|
||||||
val call = analysisSession.resolveCall(expression) ?: return emptyList()
|
val call = analysisSession.resolveCall(expression) ?: return emptyList()
|
||||||
if (call is VariableAsFunctionLikeCallInfo) {
|
if (call is VariableAsFunctionLikeCallInfo) {
|
||||||
return listOf(call.invokeFunction)
|
return listOf(call.invokeFunction)
|
||||||
|
|||||||
+2
-2
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirReturnExpression
|
import org.jetbrains.kotlin.fir.expressions.FirReturnExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||||
import org.jetbrains.kotlin.idea.fir.*
|
import org.jetbrains.kotlin.idea.fir.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.AnalysisSessionFirImpl
|
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import org.jetbrains.kotlin.psi.KtPropertyDelegate
|
import org.jetbrains.kotlin.psi.KtPropertyDelegate
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ class KtPropertyDelegationMethodsReferenceFirImpl(
|
|||||||
element: KtPropertyDelegate
|
element: KtPropertyDelegate
|
||||||
) : KtPropertyDelegationMethodsReference(element), FirKtReference {
|
) : KtPropertyDelegationMethodsReference(element), FirKtReference {
|
||||||
override fun getResolvedToPsi(
|
override fun getResolvedToPsi(
|
||||||
analysisSession: AnalysisSessionFirImpl
|
analysisSession: FirAnalysisSession
|
||||||
): Collection<PsiElement> {
|
): Collection<PsiElement> {
|
||||||
val property = (expression.parent as? KtElement)?.getOrBuildFirSafe<FirProperty>() ?: return emptyList()
|
val property = (expression.parent as? KtElement)?.getOrBuildFirSafe<FirProperty>() ?: return emptyList()
|
||||||
if (property.delegate == null) return emptyList()
|
if (property.delegate == null) return emptyList()
|
||||||
|
|||||||
Reference in New Issue
Block a user