FIR IDE: Expand KtCall API to include array access calls.
This commit is contained in:
committed by
Ilya Kirillov
parent
e27b75bfba
commit
7f9ed58c7d
+5
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.idea.frontend.api.components
|
||||
|
||||
import org.jetbrains.kotlin.idea.frontend.api.calls.KtCall
|
||||
import org.jetbrains.kotlin.psi.KtArrayAccessExpression
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
||||
import org.jetbrains.kotlin.psi.KtCallElement
|
||||
import org.jetbrains.kotlin.psi.KtUnaryExpression
|
||||
@@ -14,6 +15,7 @@ public abstract class KtCallResolver : KtAnalysisSessionComponent() {
|
||||
public abstract fun resolveCall(call: KtCallElement): KtCall?
|
||||
public abstract fun resolveCall(call: KtBinaryExpression): KtCall?
|
||||
public abstract fun resolveCall(call: KtUnaryExpression): KtCall?
|
||||
public abstract fun resolveCall(call: KtArrayAccessExpression): KtCall?
|
||||
}
|
||||
|
||||
public interface KtCallResolverMixIn : KtAnalysisSessionMixIn {
|
||||
@@ -25,4 +27,7 @@ public interface KtCallResolverMixIn : KtAnalysisSessionMixIn {
|
||||
|
||||
public fun KtUnaryExpression.resolveCall(): KtCall? =
|
||||
analysisSession.callResolver.resolveCall(this)
|
||||
|
||||
public fun KtArrayAccessExpression.resolveCall(): KtCall? =
|
||||
analysisSession.callResolver.resolveCall(this)
|
||||
}
|
||||
|
||||
+7
@@ -78,6 +78,13 @@ internal class KtFirCallResolver(
|
||||
}
|
||||
}
|
||||
|
||||
override fun resolveCall(call: KtArrayAccessExpression): KtCall? = withValidityAssertion {
|
||||
return when (val fir = call.getOrBuildFir(firResolveState)) {
|
||||
is FirFunctionCall -> resolveCall(fir)
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
private fun resolveCall(firCall: FirFunctionCall): KtCall? {
|
||||
val session = firResolveState.rootModuleSession
|
||||
return when {
|
||||
|
||||
Reference in New Issue
Block a user