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 { val actual = executeOnPooledThreadInReadAction {
analyseForTest(expression) { analyseForTest(expression) {
resolveCall(expression)?.let { stringRepresentation(it) } expression.resolveCall()?.let { stringRepresentation(it) }
} }
} ?: "null" } ?: "null"
testServices.assertions.assertEqualsToTestDataFileSibling(actual) 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) 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 KtValueArgument -> element.getArgumentExpression()?.resolveCall()
is KtDeclarationModifierList -> { is KtDeclarationModifierList -> {
val annotationEntry = element.annotationEntries.singleOrNull() val annotationEntry = element.annotationEntries.singleOrNull()
@@ -42,9 +42,7 @@ abstract class AbstractResolveCallTest : AbstractAnalysisApiBasedSingleModuleTes
?: error("Only single annotation entry is supported for now") ?: error("Only single annotation entry is supported for now")
annotationEntry.resolveCall() annotationEntry.resolveCall()
} }
is KtCallElement -> element.resolveCall() else -> element.resolveCall()
is KtElement -> element.resolveCall()
else -> error("Selected element type (${element::class.simpleName}) is not supported for 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.KtCallCandidateInfo
import org.jetbrains.kotlin.analysis.api.calls.KtCallInfo import org.jetbrains.kotlin.analysis.api.calls.KtCallInfo
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion 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.KtElement
import org.jetbrains.kotlin.psi.KtUnaryExpression
public abstract class KtCallResolver : KtAnalysisSessionComponent() { public abstract class KtCallResolver : KtAnalysisSessionComponent() {
public abstract fun resolveCall(psi: KtElement): KtCallInfo? public abstract fun resolveCall(psi: KtElement): KtCallInfo?
@@ -26,19 +23,6 @@ public interface KtCallResolverMixIn : KtAnalysisSessionMixIn {
public fun KtElement.resolveCall(): KtCallInfo? = public fun KtElement.resolveCall(): KtCallInfo? =
withValidityAssertion { analysisSession.callResolver.resolveCall(this) } 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 * Returns all the candidates considered during [overload resolution](https://kotlinlang.org/spec/overload-resolution.html) for the call
* corresponding to this [KtElement]. * corresponding to this [KtElement].