FIR: add proper receiver check for protected visibility #KT-48378 Fixed

This commit is contained in:
Mikhail Glukhikh
2021-08-24 12:30:53 +03:00
committed by TeamCityServer
parent 1c1b9547c1
commit 08e498f1f2
16 changed files with 140 additions and 30 deletions
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.resolve.calls.ReceiverValue
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.*
@NoMutableState
object FirJavaVisibilityChecker : FirVisibilityChecker() {
@@ -29,7 +30,10 @@ object FirJavaVisibilityChecker : FirVisibilityChecker() {
true
} else {
val ownerId = symbol.getOwnerId()
ownerId != null && canSeeProtectedMemberOf(containingDeclarations, dispatchReceiver, ownerId, session)
ownerId != null && canSeeProtectedMemberOf(
containingDeclarations, dispatchReceiver, ownerId, session,
isVariableOrNamedFunction = symbol is FirVariableSymbol || symbol is FirNamedFunctionSymbol
)
}
}