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.FirFunctionCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
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.FirErrorNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference
|
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.CallableId
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.idea.fir.getCandidateSymbols
|
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.fir.buildSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||||
import org.jetbrains.kotlin.idea.references.FirReferenceResolveHelper
|
import org.jetbrains.kotlin.idea.references.FirReferenceResolveHelper
|
||||||
|
import org.jetbrains.kotlin.idea.util.getElementTextInContext
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
||||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||||
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
|
|
||||||
internal class KtFirCallResolver(
|
internal class KtFirCallResolver(
|
||||||
override val analysisSession: KtFirAnalysisSession,
|
override val analysisSession: KtFirAnalysisSession,
|
||||||
@@ -91,8 +95,12 @@ internal class KtFirCallResolver(
|
|||||||
is FirErrorNamedReference -> calleeReference.createErrorCallTarget()
|
is FirErrorNamedReference -> calleeReference.createErrorCallTarget()
|
||||||
is FirSimpleNamedReference ->
|
is FirSimpleNamedReference ->
|
||||||
error(
|
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}")
|
else -> error("Unexpected call reference ${calleeReference::class.simpleName}")
|
||||||
} ?: return null
|
} ?: return null
|
||||||
|
|||||||
Reference in New Issue
Block a user