Analysis API: Add API functions to get all the candidates (with argument
mapping and substitutor) for a function call.
This commit is contained in:
committed by
Ilya Kirillov
parent
322b10f1bb
commit
4a09abc418
+11
-1
@@ -6,10 +6,14 @@
|
||||
package org.jetbrains.kotlin.analysis.api.components
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.calls.KtCallInfo
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.KtArrayAccessExpression
|
||||
import org.jetbrains.kotlin.psi.KtCallElement
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtUnaryExpression
|
||||
|
||||
public abstract class KtCallResolver : KtAnalysisSessionComponent() {
|
||||
public abstract fun resolveCall(psi: KtElement): KtCallInfo?
|
||||
public abstract fun resolveCandidates(psi: KtElement): List<KtCallInfo>
|
||||
}
|
||||
|
||||
public interface KtCallResolverMixIn : KtAnalysisSessionMixIn {
|
||||
@@ -26,4 +30,10 @@ public interface KtCallResolverMixIn : KtAnalysisSessionMixIn {
|
||||
|
||||
public fun KtArrayAccessExpression.resolveCall(): KtCallInfo =
|
||||
analysisSession.callResolver.resolveCall(this) ?: error("KtArrayAccessExpression should always resolve to a KtCallInfo")
|
||||
|
||||
public fun KtCallElement.resolveCandidates(): List<KtCallInfo> =
|
||||
analysisSession.callResolver.resolveCandidates(this)
|
||||
|
||||
public fun KtArrayAccessExpression.resolveCandidates(): List<KtCallInfo> =
|
||||
analysisSession.callResolver.resolveCandidates(this)
|
||||
}
|
||||
Reference in New Issue
Block a user