提交 71b916ae 编写于 作者: I Ilya Kirillov

FIR IDE: rename AnalysisSessionFirImpl -> FirAnalysisSession

上级 52a42235
......@@ -10,7 +10,7 @@ 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.AnalysisSessionFirImpl
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
import org.jetbrains.kotlin.idea.highlighter.AbstractKotlinPsiChecker
import org.jetbrains.kotlin.idea.highlighter.Diagnostic2Annotation
import org.jetbrains.kotlin.idea.highlighter.IdeErrorMessages
......@@ -24,7 +24,7 @@ class KotlinFirPsiChecker : AbstractKotlinPsiChecker() {
override fun annotateElement(element: PsiElement, containingFile: KtFile, holder: AnnotationHolder) {
if (element !is KtElement) return
val analysisSession = AnalysisSessionFirImpl()
val analysisSession = FirAnalysisSession()
highlightDiagnostics(element, analysisSession, holder)
......
......@@ -29,11 +29,11 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.types.model.KotlinTypeMarker
class AnalysisSessionFirImpl : FrontendAnalysisSession() {
class FirAnalysisSession : FrontendAnalysisSession() {
override fun getSmartCastedToTypes(expression: KtExpression): Collection<KotlinTypeMarker>? {
// TODO filter out not used smartcasts
return (expression.toFir() as? FirExpressionWithSmartcast)?.typesFromSmartCast
return expression.getOrBuildFirSafe<FirExpressionWithSmartcast>()?.typesFromSmartCast
}
@OptIn(ExperimentalStdlibApi::class)
......
......@@ -6,10 +6,10 @@
package org.jetbrains.kotlin.idea.references
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 {
fun getResolvedToPsi(analysisSession: AnalysisSessionFirImpl): Collection<PsiElement>
fun getResolvedToPsi(analysisSession: FirAnalysisSession): Collection<PsiElement>
override val resolver get() = KtFirReferenceResolver
}
\ No newline at end of file
......@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.idea.references
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.psi.KtImportAlias
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
......@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.psi.KtSimpleNameExpression
internal class KtSimpleNameReferenceFirImpl(
expression: KtSimpleNameExpression
) : 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 {
return true // TODO
......
......@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
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
class KtDestructuringDeclarationReferenceFirImpl(
......@@ -18,7 +18,7 @@ class KtDestructuringDeclarationReferenceFirImpl(
override fun canRename(): Boolean = false //todo
override fun getResolvedToPsi(
analysisSession: AnalysisSessionFirImpl
analysisSession: FirAnalysisSession
): Collection<PsiElement> {
val fir = expression.getOrBuildFirSafe<FirProperty>() ?: return emptyList()
val componentFunctionSymbol = (fir.initializer as? FirComponentCall)?.getCalleeSymbol() ?: return emptyList()
......
......@@ -9,7 +9,7 @@ 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.AnalysisSessionFirImpl
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
object KtFirReferenceResolver : ResolveCache.PolyVariantResolver<KtReference> {
class KotlinResolveResult(element: PsiElement) : PsiElementResolveResult(element)
......@@ -17,7 +17,7 @@ object KtFirReferenceResolver : ResolveCache.PolyVariantResolver<KtReference> {
override fun resolve(ref: KtReference, incompleteCode: Boolean): Array<ResolveResult> {
check(ref is FirKtReference) { "reference should be FirKtReference, 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)
return resolveToPsiElements.map { KotlinResolveResult(it) }.toTypedArray()
}
......
......@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.idea.references
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
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.getOrBuildFirSafe
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
open class KtForLoopInReferenceFirImpl(expression: KtForExpression) : KtForLoopInReference(expression), FirKtReference {
override fun getResolvedToPsi(
analysisSession: AnalysisSessionFirImpl
analysisSession: FirAnalysisSession
): Collection<PsiElement> {
val firLoop = expression.getOrBuildFirSafe<FirWhileLoop>() ?: return emptyList()
val condition = firLoop.condition as? FirFunctionCall
......
......@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.references
import com.intellij.psi.PsiElement
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.KtExpression
......@@ -16,7 +16,7 @@ class KtInvokeFunctionReferenceFirImpl(expression: KtCallExpression) : KtInvokeF
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()
if (call is VariableAsFunctionLikeCallInfo) {
return listOf(call.invokeFunction)
......
......@@ -12,7 +12,7 @@ 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.fir.AnalysisSessionFirImpl
import org.jetbrains.kotlin.idea.frontend.api.fir.FirAnalysisSession
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtPropertyDelegate
......@@ -20,7 +20,7 @@ class KtPropertyDelegationMethodsReferenceFirImpl(
element: KtPropertyDelegate
) : KtPropertyDelegationMethodsReference(element), FirKtReference {
override fun getResolvedToPsi(
analysisSession: AnalysisSessionFirImpl
analysisSession: FirAnalysisSession
): Collection<PsiElement> {
val property = (expression.parent as? KtElement)?.getOrBuildFirSafe<FirProperty>() ?: return emptyList()
if (property.delegate == null) return emptyList()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册