From 7a86ca632d84a32024eeae36d980dadc6207800e Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 13 Nov 2020 10:45:55 +0300 Subject: [PATCH] FIR IDE: fix collecting diagnostics for anonymous object declaration --- .../kotlin/idea/fir/low/level/api/util/utils.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt index 21ca3151730..b364ea19056 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt @@ -14,9 +14,10 @@ import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo import org.jetbrains.kotlin.idea.util.getElementTextInContext -import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtElement +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.psi.KtObjectLiteralExpression import java.util.concurrent.TimeUnit import java.util.concurrent.locks.Lock @@ -63,8 +64,10 @@ internal val FirDeclaration.ktDeclaration: KtDeclaration get() { val psi = psi ?: error("PSI element was not found for${render()}") - return psi as? KtDeclaration - ?: error( + return when (psi) { + is KtDeclaration -> psi + is KtObjectLiteralExpression -> psi.objectDeclaration + else -> error( """ FirDeclaration.psi (${this::class.simpleName}) should be KtDeclaration but was ${psi::class.simpleName} ${(psi as? KtElement)?.getElementTextInContext() ?: psi.text} @@ -72,6 +75,7 @@ internal val FirDeclaration.ktDeclaration: KtDeclaration ${render()} """.trimIndent() ) + } } internal val FirDeclaration.containingKtFileIfAny: KtFile?