Add PRIVATE_TO_THIS visibility to KtSymbolWithVisibility

This visibility is used for some cases where it isn't allowed to access
to private members of the object from other instances of the same object
because of the type parameter variance.

For almost all clients this visibility is the same as PRIVATE
This commit is contained in:
Stanislav Erokhin
2021-01-05 12:10:07 +01:00
parent d50a5e7517
commit e1e096b4ea
6 changed files with 15 additions and 12 deletions
@@ -12,8 +12,12 @@ interface KtSymbolWithVisibility {
sealed class KtSymbolVisibility {
object PUBLIC : KtSymbolVisibility()
object PRIVATE : KtSymbolVisibility()
object PRIVATE_TO_THIS : KtSymbolVisibility()
object PROTECTED : KtSymbolVisibility()
object INTERNAL : KtSymbolVisibility()
object UNKNOWN : KtSymbolVisibility()
object LOCAL : KtSymbolVisibility()
}
}
fun KtSymbolVisibility.isPrivateOrPrivateToThis(): Boolean =
this == KtSymbolVisibility.PRIVATE || this == KtSymbolVisibility.PRIVATE_TO_THIS