KT-59093 [Analysis API] Remove unnecessary resolveCall overloads from KtCallResolverMixIn

^KT-58161 Fixed
This commit is contained in:
Roman Golyshev
2023-06-20 17:08:21 +02:00
committed by teamcity
parent 50c93b0228
commit ac92c129bf
3 changed files with 3 additions and 28 deletions
@@ -27,16 +27,9 @@ abstract class AbstractMultiModuleResolveCallTest : AbstractAnalysisApiBasedTest
val actual = executeOnPooledThreadInReadAction {
analyseForTest(expression) {
resolveCall(expression)?.let { stringRepresentation(it) }
expression.resolveCall()?.let { stringRepresentation(it) }
}
} ?: "null"
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
}
private fun KtAnalysisSession.resolveCall(element: PsiElement): KtCallInfo? = when (element) {
is KtCallElement -> element.resolveCall()
is KtElement -> element.resolveCall()
else -> error("Selected element type (${element::class.simpleName}) is not supported for resolveCall()")
}
}
@@ -30,7 +30,7 @@ abstract class AbstractResolveCallTest : AbstractAnalysisApiBasedSingleModuleTes
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
}
private fun KtAnalysisSession.resolveCall(element: PsiElement): KtCallInfo? = when (element) {
private fun KtAnalysisSession.resolveCall(element: KtElement): KtCallInfo? = when (element) {
is KtValueArgument -> element.getArgumentExpression()?.resolveCall()
is KtDeclarationModifierList -> {
val annotationEntry = element.annotationEntries.singleOrNull()
@@ -42,9 +42,7 @@ abstract class AbstractResolveCallTest : AbstractAnalysisApiBasedSingleModuleTes
?: error("Only single annotation entry is supported for now")
annotationEntry.resolveCall()
}
is KtCallElement -> element.resolveCall()
is KtElement -> element.resolveCall()
else -> error("Selected element type (${element::class.simpleName}) is not supported for resolveCall()")
else -> element.resolveCall()
}
}
@@ -9,10 +9,7 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
import org.jetbrains.kotlin.analysis.api.calls.KtCallCandidateInfo
import org.jetbrains.kotlin.analysis.api.calls.KtCallInfo
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
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?
@@ -26,19 +23,6 @@ public interface KtCallResolverMixIn : KtAnalysisSessionMixIn {
public fun KtElement.resolveCall(): KtCallInfo? =
withValidityAssertion { analysisSession.callResolver.resolveCall(this) }
public fun KtCallElement.resolveCall(): KtCallInfo? = withValidityAssertion {
analysisSession.callResolver.resolveCall(this)
}
public fun KtUnaryExpression.resolveCall(): KtCallInfo? = withValidityAssertion {
analysisSession.callResolver.resolveCall(this)
}
public fun KtArrayAccessExpression.resolveCall(): KtCallInfo? = withValidityAssertion {
analysisSession.callResolver.resolveCall(this)
}
/**
* Returns all the candidates considered during [overload resolution](https://kotlinlang.org/spec/overload-resolution.html) for the call
* corresponding to this [KtElement].