FIR IDE: add more info to the call resolve error message
This commit is contained in:
+10
-2
@@ -9,9 +9,11 @@ import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
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.render
|
||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||
import org.jetbrains.kotlin.idea.fir.getCandidateSymbols
|
||||
@@ -26,9 +28,11 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.buildSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||
import org.jetbrains.kotlin.idea.references.FirReferenceResolveHelper
|
||||
import org.jetbrains.kotlin.idea.util.getElementTextInContext
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
internal class KtFirCallResolver(
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
@@ -91,8 +95,12 @@ internal class KtFirCallResolver(
|
||||
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"
|
||||
"""
|
||||
Looks like FirFunctionCall was not resolved to BODY_RESOLVE phase,
|
||||
consider resolving it containing declaration before starting resolve calls
|
||||
${this.render()}
|
||||
${(this.psi as? KtElement)?.getElementTextInContext()}
|
||||
""".trimIndent()
|
||||
)
|
||||
else -> error("Unexpected call reference ${calleeReference::class.simpleName}")
|
||||
} ?: return null
|
||||
|
||||
Reference in New Issue
Block a user