From a7b0c6c8210e2200b4a47319361838a9af13aef0 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Sat, 20 Mar 2021 19:59:03 +0100 Subject: [PATCH] FIR IDE: fix symbol pointer creation for KtAnonymousObjectSymbol --- .../api/symbols/pointers/KtPsiBasedSymbolPointer.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/pointers/KtPsiBasedSymbolPointer.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/pointers/KtPsiBasedSymbolPointer.kt index f95eca7f3ce..89196c6f6f2 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/pointers/KtPsiBasedSymbolPointer.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/pointers/KtPsiBasedSymbolPointer.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbolOrigin import org.jetbrains.kotlin.psi.KtDeclaration +import org.jetbrains.kotlin.psi.KtObjectLiteralExpression import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer class KtPsiBasedSymbolPointer(private val psiPointer: SmartPsiElementPointer) : KtSymbolPointer() { @@ -23,7 +24,11 @@ class KtPsiBasedSymbolPointer(private val psiPointer: SmartPsiElem companion object { fun createForSymbolFromSource(symbol: S): KtPsiBasedSymbolPointer? { if (symbol.origin == KtSymbolOrigin.LIBRARY) return null - val psi = symbol.psi as? KtDeclaration ?: return null + val psi = when(val psi = symbol.psi) { + is KtDeclaration -> psi + is KtObjectLiteralExpression -> psi.objectDeclaration + else -> null + } ?: return null return KtPsiBasedSymbolPointer(psi.createSmartPointer()) } }