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?