FIR IDE: Use correct class symbol in getImplementationStatus

The previous check `if (parentClassSymbol !is FirClassSymbol<*>)`
always succeeded, because `parentClassSymbol` was a declaration,
not a symbol
This commit is contained in:
Roman Golyshev
2021-07-20 15:58:25 +03:00
committed by teamcityserver
parent b65c477e68
commit f3bdadb7d9
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.originalForSubstitutionOverride
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.SessionHolderImpl
import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
import org.jetbrains.kotlin.idea.frontend.api.components.KtOverrideInfoProvider
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
@@ -50,8 +49,11 @@ class KtFirOverrideInfoProvider(
return memberSymbol.firRef.withFir { memberFir ->
if (memberFir !is FirCallableDeclaration) return@withFir null
parentClassSymbol.firRef.withFir inner@{ parentClassFir ->
if (parentClassSymbol !is FirClassSymbol<*>) return@inner null
memberFir.symbol.getImplementationStatus(SessionHolderImpl(firAnalysisSession.rootModuleSession, ScopeSession()), parentClassSymbol)
if (parentClassFir !is FirClass) return@inner null
memberFir.symbol.getImplementationStatus(
SessionHolderImpl(firAnalysisSession.rootModuleSession, ScopeSession()),
parentClassFir.symbol
)
}
}
}