[AA] Rename originalOverriddenSymbol to unwrapFakeOverrides
- `unwrap` signals that fake overrides will be unwrapped until the original symbol is recovered. - Also remove nullability of the returned `KtCallableSymbol`. If the given symbol cannot be unwrapped, it is most likely already the original symbol. - Remove the lazy resolve to `STATUS` in `KtFirOverrideInfoProvider`, as it's not needed to unwrap fake overrides.
This commit is contained in:
committed by
teamcity
parent
fa4a4e56f3
commit
ea346e3e0e
+7
-11
@@ -63,31 +63,27 @@ internal class KtFirOverrideInfoProvider(
|
||||
|
||||
override fun getOriginalContainingClassForOverride(symbol: KtCallableSymbol): KtClassOrObjectSymbol? {
|
||||
require(symbol is KtFirSymbol<*>)
|
||||
symbol.firSymbol.lazyResolveToPhase(FirResolvePhase.STATUS)
|
||||
val firDeclaration = symbol.firSymbol.fir as FirCallableDeclaration
|
||||
val containingClass =
|
||||
getOriginalOverriddenSymbol(firDeclaration)?.containingClassLookupTag()?.toSymbol(rootModuleSession) ?: return null
|
||||
unwrapFakeOverrides(firDeclaration).containingClassLookupTag()?.toSymbol(rootModuleSession) ?: return null
|
||||
return analysisSession.firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(containingClass.fir.symbol) as? KtClassOrObjectSymbol
|
||||
|
||||
}
|
||||
|
||||
override fun getOriginalOverriddenSymbol(symbol: KtCallableSymbol): KtCallableSymbol? {
|
||||
override fun unwrapFakeOverrides(symbol: KtCallableSymbol): KtCallableSymbol {
|
||||
require(symbol is KtFirSymbol<*>)
|
||||
symbol.firSymbol.lazyResolveToPhase(FirResolvePhase.STATUS)
|
||||
val firDeclaration = symbol.firSymbol.fir as FirCallableDeclaration
|
||||
return getOriginalOverriddenSymbol(firDeclaration)
|
||||
?.buildSymbol(analysisSession.firSymbolBuilder) as KtCallableSymbol?
|
||||
return unwrapFakeOverrides(firDeclaration).buildSymbol(analysisSession.firSymbolBuilder) as KtCallableSymbol
|
||||
}
|
||||
|
||||
private fun getOriginalOverriddenSymbol(member: FirCallableDeclaration): FirCallableDeclaration? {
|
||||
private fun unwrapFakeOverrides(member: FirCallableDeclaration): FirCallableDeclaration {
|
||||
val originalForSubstitutionOverride = member.originalForSubstitutionOverride
|
||||
if (originalForSubstitutionOverride != null) return getOriginalOverriddenSymbol(originalForSubstitutionOverride)
|
||||
if (originalForSubstitutionOverride != null) return unwrapFakeOverrides(originalForSubstitutionOverride)
|
||||
|
||||
val originalForIntersectionOverrideAttr = member.originalForIntersectionOverrideAttr
|
||||
if (originalForIntersectionOverrideAttr != null) return getOriginalOverriddenSymbol(originalForIntersectionOverrideAttr)
|
||||
if (originalForIntersectionOverrideAttr != null) return unwrapFakeOverrides(originalForIntersectionOverrideAttr)
|
||||
|
||||
val delegatedWrapperData = member.delegatedWrapperData
|
||||
if (delegatedWrapperData != null) return getOriginalOverriddenSymbol(delegatedWrapperData.wrapped)
|
||||
if (delegatedWrapperData != null) return unwrapFakeOverrides(delegatedWrapperData.wrapped)
|
||||
|
||||
return member
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user