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()) } }