[Analysis API] introduce KtSymbolOrigin.SUBSTITUTION_OVERRIDE

^KT-52043
This commit is contained in:
Ilya Kirillov
2022-06-23 19:47:29 +02:00
parent 0ba06e0807
commit bb7b34b3a1
18 changed files with 47 additions and 38 deletions
@@ -52,7 +52,7 @@ internal class KtFirSymbolContainingDeclarationProvider(
KtSymbolOrigin.LIBRARY, KtSymbolOrigin.JAVA, KtSymbolOrigin.JAVA_SYNTHETIC_PROPERTY ->
getContainingDeclarationForLibrarySymbol(symbol)
KtSymbolOrigin.PROPERTY_BACKING_FIELD -> getContainingDeclarationForBackingFieldSymbol(symbol)
KtSymbolOrigin.INTERSECTION_OVERRIDE -> TODO()
KtSymbolOrigin.INTERSECTION_OVERRIDE, KtSymbolOrigin.SUBSTITUTION_OVERRIDE -> TODO()
KtSymbolOrigin.SAM_CONSTRUCTOR -> null
KtSymbolOrigin.PLUGIN -> TODO("Containing declaration is requested for ${ DebugSymbolRenderer.render(symbol) }")
KtSymbolOrigin.DELEGATED -> TODO()
@@ -76,11 +76,9 @@ internal tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (ori
original.ktSymbolOrigin()
}
is FirDeclarationOrigin.Plugin -> KtSymbolOrigin.PLUGIN
else -> {
val overridden = (this as? FirCallableDeclaration)?.originalIfFakeOverride()
?: throw InvalidFirDeclarationOriginForSymbol(this)
overridden.ktSymbolOrigin()
}
FirDeclarationOrigin.RenamedForOverride -> KtSymbolOrigin.JAVA
FirDeclarationOrigin.SubstitutionOverride -> KtSymbolOrigin.SUBSTITUTION_OVERRIDE
FirDeclarationOrigin.DynamicScope -> throw InvalidFirDeclarationOriginForSymbol(this)
}
class InvalidFirDeclarationOriginForSymbol(declaration: FirDeclaration) :