From e5f6e4e1e8e7d2c2adad19de1c66ce72e73da775 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 3 Jun 2021 16:32:30 +0200 Subject: [PATCH] FIR IDE: do not fail on FirDeclarationOrigin.ImportedFromObject for symbol --- .../kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt index 8fc32a82251..c4bc90fdfdc 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.originalIfFakeOverride import org.jetbrains.kotlin.fir.render +import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectData import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner import org.jetbrains.kotlin.idea.frontend.api.fir.utils.FirRefWithValidityCheck import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol @@ -43,7 +44,12 @@ private tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (orig else -> throw InvalidFirDeclarationOriginForSymbol(this) } } + FirDeclarationOrigin.ImportedFromObject -> { + val importedFromObjectData = (this as FirCallableDeclaration<*>).importedFromObjectData + ?: error("Declaration has ImportedFromObject origin, but no importedFromObjectData present") + importedFromObjectData.original.ktSymbolOrigin() + } else -> { val overridden = (this as? FirCallableDeclaration<*>)?.originalIfFakeOverride() ?: throw InvalidFirDeclarationOriginForSymbol(this)