[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:
committed by
Space Team
parent
b7d56dea44
commit
fab51ff83c
+1
-14
@@ -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 }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user