[Analysis API FIR] KtSymbolByFirBuilder: simplify call-site substitution override unwrap logic

Not we have separate SubstitutionOverride for declaration and call site,
so this logic can be simplified a lot
This commit is contained in:
Dmitrii Gridin
2023-12-11 17:50:56 +01:00
committed by Space Team
parent b7d56dea44
commit fab51ff83c
@@ -542,20 +542,7 @@ internal class KtSymbolByFirBuilder(
*/
private inline fun <reified T : FirCallableDeclaration> T.unwrapUseSiteSubstitutionOverride(): T? {
val originalDeclaration = originalForSubstitutionOverride ?: return null
val containingClass = getContainingMemberOrSelf().getContainingClass(rootSession) ?: return null
val originalContainingClass = originalDeclaration.getContainingMemberOrSelf().getContainingClass(rootSession) ?: return null
// If substitution override does not change the containing class of the FIR declaration,
// it is a use-site substitution override
if (containingClass != originalContainingClass) return null
return originalDeclaration
}
private fun FirCallableDeclaration.getContainingMemberOrSelf(): FirCallableDeclaration = when (this) {
is FirValueParameter -> containingFunctionSymbol.fir
else -> this
return originalDeclaration.takeIf { this.origin is FirDeclarationOrigin.SubstitutionOverride.CallSite }
}
/**