FIR IDE: do not fail on FirDeclarationOrigin.ImportedFromObject for symbol
This commit is contained in:
committed by
TeamCityServer
parent
be99f24278
commit
e5f6e4e1e8
+6
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.declarations.*
|
|||||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
||||||
import org.jetbrains.kotlin.fir.originalIfFakeOverride
|
import org.jetbrains.kotlin.fir.originalIfFakeOverride
|
||||||
import org.jetbrains.kotlin.fir.render
|
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.ValidityTokenOwner
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.FirRefWithValidityCheck
|
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.FirRefWithValidityCheck
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
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)
|
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 -> {
|
else -> {
|
||||||
val overridden = (this as? FirCallableDeclaration<*>)?.originalIfFakeOverride()
|
val overridden = (this as? FirCallableDeclaration<*>)?.originalIfFakeOverride()
|
||||||
?: throw InvalidFirDeclarationOriginForSymbol(this)
|
?: throw InvalidFirDeclarationOriginForSymbol(this)
|
||||||
|
|||||||
Reference in New Issue
Block a user