[Analysis API] fix "Unexpected class FirTypeProjectionWithVarianceImpl" exception

from KtFirExpressionTypeProvider.getKtExpressionType

^KTIJ-23432 fixed
This commit is contained in:
Ilya Kirillov
2023-05-04 19:54:06 +02:00
parent 89dbc4daec
commit 4c69f2fbcb
8 changed files with 36 additions and 2 deletions
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.types.Variance
abstract class AbstractHLExpressionTypeTest : AbstractAnalysisApiSingleFileTest() {
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
val selected = testServices.expressionMarkerProvider.getSelectedElement(ktFile).let {
val selected = testServices.expressionMarkerProvider.getSelectedElementOfTypeByDirective(ktFile, module).let {
if (it is KtBlockExpression && it.statements.size == 1 && it.textRange == it.statements.single().textRange) {
it.statements.single()
} else {
@@ -31,7 +31,7 @@ abstract class AbstractHLExpressionTypeTest : AbstractAnalysisApiSingleFileTest(
is KtExpression -> selected
is KtValueArgument -> selected.getArgumentExpression()
else -> null
} ?: error("expect an expression but got ${selected.text}")
} ?: error("expect an expression but got ${selected.text}, ${selected::class.java}")
val type = executeOnPooledThreadInReadAction {
analyseForTest(expression) { expression.getKtType()?.render(renderer, position = Variance.INVARIANT) }
}