diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirCallResolver.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirCallResolver.kt index 764f97807ba..7cdd54c9b03 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirCallResolver.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirCallResolver.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference +import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.idea.fir.getCandidateSymbols @@ -88,6 +89,10 @@ internal class KtFirCallResolver( val target = when (val calleeReference = calleeReference) { is FirResolvedNamedReference -> calleeReference.getKtFunctionOrConstructorSymbol()?.let { KtSuccessCallTarget(it) } is FirErrorNamedReference -> calleeReference.createErrorCallTarget() + is FirSimpleNamedReference -> error( + "Looks like FirFunctionCall was not resolved to BODY_RESOLVE phase, " + + "consider resolving it containing declaration before starting resolve calls" + ) else -> error("Unexpected call reference ${calleeReference::class.simpleName}") } ?: return null return KtFunctionCall(target) diff --git a/idea/testData/findUsages/kotlin/findParameterUsages/kotlinConstructorParameterUsages.0.kt b/idea/testData/findUsages/kotlin/findParameterUsages/kotlinConstructorParameterUsages.0.kt index 6f96bd6f9d9..523fb260670 100644 --- a/idea/testData/findUsages/kotlin/findParameterUsages/kotlinConstructorParameterUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findParameterUsages/kotlinConstructorParameterUsages.0.kt @@ -1,5 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages +// FIR_IGNORE open class A(foo: T) { init { println(foo) diff --git a/idea/testData/findUsages/kotlin/findParameterUsages/kotlinConstructorParameterUsages.results.txt b/idea/testData/findUsages/kotlin/findParameterUsages/kotlinConstructorParameterUsages.results.txt index 036df139ce4..0823ac0c321 100644 --- a/idea/testData/findUsages/kotlin/findParameterUsages/kotlinConstructorParameterUsages.results.txt +++ b/idea/testData/findUsages/kotlin/findParameterUsages/kotlinConstructorParameterUsages.results.txt @@ -1,4 +1,4 @@ -Named argument 11 return A(foo = ":)") -Named argument 16 A(foo = ":)") -Value read 5 println(foo) -Value read 8 val t: T = foo +Named argument 12 return A(foo = ":)") +Named argument 17 A(foo = ":)") +Value read 6 println(foo) +Value read 9 val t: T = foo