From 0c5007243651e4254b8653dbf61a247ab3063291 Mon Sep 17 00:00:00 2001 From: Bart van Helvert Date: Mon, 4 Jul 2022 16:27:18 +0200 Subject: [PATCH] KTIJ-22157 Don't leak user code in unresolved call exception --- .../kotlin/analysis/api/components/KtCallResolver.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtCallResolver.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtCallResolver.kt index 5e7ddaf6efb..005640e5488 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtCallResolver.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtCallResolver.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.psi.KtArrayAccessExpression import org.jetbrains.kotlin.psi.KtCallElement import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtUnaryExpression +import org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments public abstract class KtCallResolver : KtAnalysisSessionComponent() { public abstract fun resolveCall(psi: KtElement): KtCallInfo? @@ -52,5 +53,6 @@ public interface KtCallResolverMixIn : KtAnalysisSessionMixIn { } private inline fun unresolvedKtCallError(element: PSI): Nothing { - error("${PSI::class.simpleName} should always resolve to a KtCallInfo\nelement: ${element::class.simpleName}\ntext:\n${element.getElementTextInContext()}") + throw KotlinExceptionWithAttachments("${PSI::class.simpleName} should always resolve to a KtCallInfo") + .withAttachment(element::class.simpleName ?: "element", element.getElementTextInContext()) }