FIR: Optimize usages of containingClass and its implementation

This commit is contained in:
Denis Zharkov
2020-10-26 15:21:10 +03:00
parent 923bb3b674
commit 2105a041a5
4 changed files with 25 additions and 25 deletions
@@ -12,9 +12,9 @@ import org.jetbrains.kotlin.fir.FirVisibilityChecker
import org.jetbrains.kotlin.fir.NoMutableState
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.getOwnerId
import org.jetbrains.kotlin.fir.resolve.calls.Candidate
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
import org.jetbrains.kotlin.name.ClassId
@NoMutableState
object FirJavaVisibilityChecker : FirVisibilityChecker() {
@@ -22,7 +22,6 @@ object FirJavaVisibilityChecker : FirVisibilityChecker() {
declarationVisibility: Visibility,
symbol: AbstractFirBasedSymbol<*>,
useSiteFile: FirFile,
ownerId: ClassId?,
containingDeclarations: List<FirDeclaration>,
candidate: Candidate,
session: FirSession
@@ -32,6 +31,7 @@ object FirJavaVisibilityChecker : FirVisibilityChecker() {
if (symbol.packageFqName() == useSiteFile.packageFqName) {
true
} else {
val ownerId = symbol.getOwnerId()
ownerId != null && canSeeProtectedMemberOf(containingDeclarations, candidate.dispatchReceiverValue, ownerId, session)
}
}