From 39c38aa588dcd5692382a265b5a79f49aea3ddb3 Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Tue, 14 Nov 2023 12:35:59 +0100 Subject: [PATCH] [PSI] KtQualifiedExpression: Replace `AssertionError` with `errorWithAttachment` - There is no other usage of `AssertionError` in the `org.jetbrains.kotlin.psi` package. `errorWithAttachment` is more idiomatic, throws an `Exception` instead of an `Error`, and avoids leaking user code. --- .../src/org/jetbrains/kotlin/psi/KtQualifiedExpression.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtQualifiedExpression.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/KtQualifiedExpression.kt index de1655d5d4c..1da47b77c4b 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtQualifiedExpression.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtQualifiedExpression.kt @@ -19,15 +19,18 @@ package org.jetbrains.kotlin.psi import com.intellij.lang.ASTNode import org.jetbrains.kotlin.lexer.KtSingleValueToken import org.jetbrains.kotlin.lexer.KtTokens -import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext import org.jetbrains.kotlin.psi.psiUtil.siblings import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull +import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment +import org.jetbrains.kotlin.utils.exceptions.withPsiEntry import java.util.* interface KtQualifiedExpression : KtExpression { val receiverExpression: KtExpression @OptIn(KtPsiInconsistencyHandling::class) - get() = receiverExpressionOrNull ?: throw AssertionError("No receiver found: ${getElementTextWithContext()}") + get() = receiverExpressionOrNull ?: errorWithAttachment("No receiver found in qualified expression") { + withPsiEntry("qualifiedExpression", this@KtQualifiedExpression) + } /** * A consistent [KtQualifiedExpression] should always have a receiver, so [receiverExpression] should be preferred if possible. Only use