[FIR] Rename new visibilities to CamelCase

It's more convenient since they are objects now instead of
  const fields in FE 1.0
This commit is contained in:
Dmitriy Novozhilov
2020-08-14 18:47:51 +03:00
parent 43821b681c
commit 18ae593700
48 changed files with 196 additions and 197 deletions
@@ -227,10 +227,10 @@ fun KtModifierList?.getVisibility() = this?.visibilityModifierType()?.toFirVisib
fun KtModifierKeywordToken.toFirVisibility(): Visibility {
return when (this) {
KtTokens.PUBLIC_KEYWORD -> Visibilities.PUBLIC
KtTokens.PRIVATE_KEYWORD -> Visibilities.PRIVATE
KtTokens.PROTECTED_KEYWORD -> Visibilities.PROTECTED
KtTokens.INTERNAL_KEYWORD -> Visibilities.INTERNAL
KtTokens.PUBLIC_KEYWORD -> Visibilities.Public
KtTokens.PRIVATE_KEYWORD -> Visibilities.Private
KtTokens.PROTECTED_KEYWORD -> Visibilities.Protected
KtTokens.INTERNAL_KEYWORD -> Visibilities.Internal
else -> throw IllegalArgumentException("Unknown visibility modifier:$this")
}
}
@@ -29,11 +29,11 @@ object FirConstructorAllowedChecker : FirConstructorChecker() {
ClassKind.OBJECT -> reporter.report(source, FirErrors.CONSTRUCTOR_IN_OBJECT)
ClassKind.INTERFACE -> reporter.report(source, FirErrors.CONSTRUCTOR_IN_INTERFACE)
ClassKind.ENUM_ENTRY -> reporter.report(source, FirErrors.CONSTRUCTOR_IN_OBJECT)
ClassKind.ENUM_CLASS -> if (declaration.visibility != Visibilities.PRIVATE) {
ClassKind.ENUM_CLASS -> if (declaration.visibility != Visibilities.Private) {
reporter.report(source, FirErrors.NON_PRIVATE_CONSTRUCTOR_IN_ENUM)
}
ClassKind.CLASS -> if (containingClass is FirRegularClass && containingClass.modality == Modality.SEALED &&
declaration.visibility != Visibilities.PRIVATE
declaration.visibility != Visibilities.Private
) {
reporter.report(source, FirErrors.NON_PRIVATE_CONSTRUCTOR_IN_SEALED)
}
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.name.Name
object FirLocalEntityNotAllowedChecker : FirBasicDeclarationChecker() {
override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
if (declaration !is FirRegularClass || declaration.visibility != Visibilities.LOCAL) {
if (declaration !is FirRegularClass || declaration.visibility != Visibilities.Local) {
return
}
@@ -40,17 +40,17 @@ object RedundantVisibilityModifierChecker : FirBasicDeclarationChecker() {
modifierList.hasModifier(KtTokens.INTERNAL_KEYWORD) &&
containingMemberDeclaration.let {
it != null && (it.isLocalMember || modifierList.hasModifier(KtTokens.PRIVATE_KEYWORD))
} -> Visibilities.INTERNAL
} -> Visibilities.Internal
else -> null
} ?: return
if (
redundantVisibility == Visibilities.PUBLIC
redundantVisibility == Visibilities.Public
&& declaration is FirProperty
&& modifierList.hasModifier(KtTokens.OVERRIDE_KEYWORD)
&& declaration.isVar
&& declaration.setter?.visibility == Visibilities.PUBLIC
&& declaration.setter?.visibility == Visibilities.Public
) return
val source = modifierList.visibilityModifier()?.toFirPsiSourceElement()
@@ -71,7 +71,7 @@ object RedundantVisibilityModifierChecker : FirBasicDeclarationChecker() {
clazz is FirClass
&& (clazz.classKind == ClassKind.ENUM_CLASS || clazz.modality() == Modality.SEALED)
) {
return Visibilities.PRIVATE
return Visibilities.Private
} else {
Visibilities.DEFAULT_VISIBILITY
}
@@ -86,9 +86,9 @@ object RedundantVisibilityModifierChecker : FirBasicDeclarationChecker() {
}
private fun findFunctionVisibility(function: FirSimpleFunction, context: CheckerContext): Visibility {
val currentClass = context.findClosestClassOrObject() ?: return Visibilities.UNKNOWN
val currentClass = context.findClosestClassOrObject() ?: return Visibilities.Unknown
val overriddenFunctions = function.overriddenFunctions(currentClass, context)
var visibility: Visibility = Visibilities.PRIVATE
var visibility: Visibility = Visibilities.Private
for (func in overriddenFunctions) {
val currentVisibility = func.fir.visibility()
if (currentVisibility != null) {
@@ -6,27 +6,27 @@
package org.jetbrains.kotlin.fir
object Visibilities {
object PRIVATE : Visibility("private", isPublicAPI = false)
object Private : Visibility("private", isPublicAPI = false)
object PRIVATE_TO_THIS : Visibility("private_to_this", isPublicAPI = false) {
object PrivateToThis : Visibility("private_to_this", isPublicAPI = false) {
override val internalDisplayName: String
get() = "private/*private to this*/"
}
object PROTECTED : Visibility("protected", isPublicAPI = true)
object INTERNAL : Visibility("internal", isPublicAPI = false)
object PUBLIC : Visibility("public", isPublicAPI = true)
object LOCAL : Visibility("local", isPublicAPI = false)
object INVISIBLE_FAKE : Visibility("invisible_fake", isPublicAPI = false)
object UNKNOWN : Visibility("unknown", isPublicAPI = false)
object Protected : Visibility("protected", isPublicAPI = true)
object Internal : Visibility("internal", isPublicAPI = false)
object Public : Visibility("public", isPublicAPI = true)
object Local : Visibility("local", isPublicAPI = false)
object InvisibleFake : Visibility("invisible_fake", isPublicAPI = false)
object Unknown : Visibility("unknown", isPublicAPI = false)
@OptIn(ExperimentalStdlibApi::class)
private val ORDERED_VISIBILITIES: Map<Visibility, Int> = buildMap {
put(PRIVATE_TO_THIS, 0)
put(PRIVATE, 0);
put(INTERNAL, 1);
put(PROTECTED, 1);
put(PUBLIC, 2);
put(PrivateToThis, 0)
put(Private, 0);
put(Internal, 1);
put(Protected, 1);
put(Public, 2);
}
fun compare(first: Visibility, second: Visibility): Int? {
@@ -50,8 +50,8 @@ object Visibilities {
}
fun isPrivate(visibility: Visibility): Boolean {
return visibility === PRIVATE || visibility === PRIVATE_TO_THIS
return visibility === Private || visibility === PrivateToThis
}
val DEFAULT_VISIBILITY = PUBLIC
val DEFAULT_VISIBILITY = Public
}
@@ -521,7 +521,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
}
private fun FlowContent.visibility(visibility: Visibility) {
if (visibility == Visibilities.UNKNOWN)
if (visibility == Visibilities.Unknown)
return unresolved { keyword("public?") }
return keyword(visibility.toString())
}
@@ -90,7 +90,7 @@ class FirElementSerializer private constructor(
val modality = regularClass?.modality ?: Modality.FINAL
val flags = Flags.getClassFlags(
klass.nonSourceAnnotations(session).isNotEmpty(),
FirProtoEnumFlags.visibility(regularClass?.let { normalizeVisibility(it) } ?: Visibilities.LOCAL),
FirProtoEnumFlags.visibility(regularClass?.let { normalizeVisibility(it) } ?: Visibilities.Local),
ProtoEnumFlags.modality(modality),
ProtoEnumFlags.classKind(klass.classKind, regularClass?.isCompanion == true),
regularClass?.isInner == true,
@@ -301,7 +301,7 @@ class FirElementSerializer private constructor(
val flags = Flags.getFunctionFlags(
function.nonSourceAnnotations(session).isNotEmpty(),
FirProtoEnumFlags.visibility(simpleFunction?.let { normalizeVisibility(it) } ?: Visibilities.LOCAL),
FirProtoEnumFlags.visibility(simpleFunction?.let { normalizeVisibility(it) } ?: Visibilities.Local),
ProtoEnumFlags.modality(simpleFunction?.modality ?: Modality.FINAL),
ProtoBuf.MemberKind.DECLARATION,
simpleFunction?.isOperator == true,
@@ -60,19 +60,19 @@ class FirJvmSerializerExtension @JvmOverloads constructor(
override fun shouldUseTypeTable(): Boolean = useTypeTable
override fun shouldSerializeFunction(function: FirFunction<*>): Boolean {
return classBuilderMode != ClassBuilderMode.ABI ||
function !is FirSimpleFunction || function.visibility != Visibilities.PRIVATE
function !is FirSimpleFunction || function.visibility != Visibilities.Private
}
override fun shouldSerializeProperty(property: FirProperty): Boolean {
return classBuilderMode != ClassBuilderMode.ABI || property.visibility != Visibilities.PRIVATE
return classBuilderMode != ClassBuilderMode.ABI || property.visibility != Visibilities.Private
}
override fun shouldSerializeTypeAlias(typeAlias: FirTypeAlias): Boolean {
return classBuilderMode != ClassBuilderMode.ABI || typeAlias.visibility != Visibilities.PRIVATE
return classBuilderMode != ClassBuilderMode.ABI || typeAlias.visibility != Visibilities.Private
}
override fun shouldSerializeNestedClass(nestedClass: FirRegularClass): Boolean {
return classBuilderMode != ClassBuilderMode.ABI || nestedClass.visibility != Visibilities.PRIVATE
return classBuilderMode != ClassBuilderMode.ABI || nestedClass.visibility != Visibilities.Private
}
@OptIn(ObsoleteDescriptorBasedAPI::class)
@@ -43,7 +43,6 @@ import org.jetbrains.kotlin.ir.types.*
import org.jetbrains.kotlin.ir.types.impl.IrErrorTypeImpl
import org.jetbrains.kotlin.ir.util.SymbolTable
import org.jetbrains.kotlin.ir.util.functions
import org.jetbrains.kotlin.ir.util.isFakeOverride
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.psiUtil.endOffset
import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments
@@ -301,7 +300,7 @@ internal fun FirSimpleFunction.generateOverriddenFunctionSymbols(
scope.processFunctionsByName(name) {}
val overriddenSet = mutableSetOf<IrSimpleFunctionSymbol>()
scope.processDirectlyOverriddenFunctions(symbol) {
if ((it.fir as FirSimpleFunction).visibility == Visibilities.PRIVATE) {
if ((it.fir as FirSimpleFunction).visibility == Visibilities.Private) {
return@processDirectlyOverriddenFunctions ProcessorAction.NEXT
}
val overridden = declarationStorage.getIrFunctionSymbol(it.unwrapSubstitutionOverrides())
@@ -322,7 +321,7 @@ internal fun FirProperty.generateOverriddenAccessorSymbols(
scope.processPropertiesByName(name) {}
val overriddenSet = mutableSetOf<IrSimpleFunctionSymbol>()
scope.processDirectlyOverriddenProperties(symbol) {
if (it.fir.visibility == Visibilities.PRIVATE) {
if (it.fir.visibility == Visibilities.Private) {
return@processDirectlyOverriddenProperties ProcessorAction.NEXT
}
val overriddenProperty = declarationStorage.getIrPropertyOrFieldSymbol(it.unwrapSubstitutionOverrides()) as IrPropertySymbol
@@ -494,13 +493,13 @@ fun Fir2IrComponents.createTemporaryVariableForSafeCallConstruction(
}
fun Visibility.toOldVisibility(): OldVisibility = when (this.normalize()) {
Visibilities.PRIVATE -> OldVisibilities.PRIVATE
Visibilities.PRIVATE_TO_THIS -> OldVisibilities.PRIVATE_TO_THIS
Visibilities.PROTECTED -> OldVisibilities.PROTECTED
Visibilities.INTERNAL -> OldVisibilities.INTERNAL
Visibilities.PUBLIC -> OldVisibilities.PUBLIC
Visibilities.LOCAL -> OldVisibilities.LOCAL
Visibilities.INVISIBLE_FAKE -> OldVisibilities.INVISIBLE_FAKE
Visibilities.UNKNOWN -> OldVisibilities.UNKNOWN
Visibilities.Private -> OldVisibilities.PRIVATE
Visibilities.PrivateToThis -> OldVisibilities.PRIVATE_TO_THIS
Visibilities.Protected -> OldVisibilities.PROTECTED
Visibilities.Internal -> OldVisibilities.INTERNAL
Visibilities.Public -> OldVisibilities.PUBLIC
Visibilities.Local -> OldVisibilities.LOCAL
Visibilities.InvisibleFake -> OldVisibilities.INVISIBLE_FAKE
Visibilities.Unknown -> OldVisibilities.UNKNOWN
else -> error("Unknown visiblity: $this")
}
@@ -134,7 +134,7 @@ class Fir2IrClassifierStorage(
}
internal fun getCachedIrClass(klass: FirClass<*>): IrClass? {
return if (klass is FirAnonymousObject || klass is FirRegularClass && klass.visibility == Visibilities.LOCAL) {
return if (klass is FirAnonymousObject || klass is FirRegularClass && klass.visibility == Visibilities.Local) {
localStorage.getLocalClass(klass)
} else {
classCache[klass]
@@ -254,7 +254,7 @@ class Fir2IrClassifierStorage(
if (parent != null) {
irClass.parent = parent
}
if (regularClass.visibility == Visibilities.LOCAL) {
if (regularClass.visibility == Visibilities.Local) {
localStorage.putLocalClass(regularClass, irClass)
} else {
classCache[regularClass] = irClass
@@ -264,7 +264,7 @@ class Fir2IrClassifierStorage(
fun createIrAnonymousObject(
anonymousObject: FirAnonymousObject,
visibility: Visibility = Visibilities.LOCAL,
visibility: Visibility = Visibilities.Local,
name: Name = Name.special("<no name provided>"),
irParent: IrDeclarationParent? = null
): IrClass {
@@ -293,7 +293,7 @@ class Fir2IrClassifierStorage(
private fun getIrAnonymousObjectForEnumEntry(anonymousObject: FirAnonymousObject, name: Name, irParent: IrClass?): IrClass {
localStorage.getLocalClass(anonymousObject)?.let { return it }
return createIrAnonymousObject(anonymousObject, Visibilities.PRIVATE, name, irParent)
return createIrAnonymousObject(anonymousObject, Visibilities.Private, name, irParent)
}
private fun createIrTypeParameterWithoutBounds(
@@ -426,7 +426,7 @@ class Fir2IrClassifierStorage(
fun getIrClassSymbol(firClassSymbol: FirClassSymbol<*>): IrClassSymbol {
val firClass = firClassSymbol.fir
getCachedIrClass(firClass)?.let { return it.symbol }
if (firClass is FirAnonymousObject || firClass is FirRegularClass && firClass.visibility == Visibilities.LOCAL) {
if (firClass is FirAnonymousObject || firClass is FirRegularClass && firClass.visibility == Visibilities.Local) {
return createIrClass(firClass).symbol
}
val signature = signatureComposer.composeSignature(firClass)!!
@@ -358,7 +358,7 @@ class Fir2IrDeclarationStorage(
}
fun getCachedIrFunction(function: FirFunction<*>): IrSimpleFunction? {
return if (function !is FirSimpleFunction || function.visibility == Visibilities.LOCAL) {
return if (function !is FirSimpleFunction || function.visibility == Visibilities.Local) {
localStorage.getLocalFunction(function)
} else {
functionCache[function]
@@ -397,7 +397,7 @@ class Fir2IrDeclarationStorage(
classifierStorage.preCacheTypeParameters(function)
val name = simpleFunction?.name
?: if (isLambda) Name.special("<anonymous>") else Name.special("<no name provided>")
val visibility = simpleFunction?.visibility ?: Visibilities.LOCAL
val visibility = simpleFunction?.visibility ?: Visibilities.Local
val isSuspend =
if (isLambda) ((function as FirAnonymousFunction).typeRef as? FirResolvedTypeRef)?.isSuspend == true
else simpleFunction?.isSuspend == true
@@ -432,7 +432,7 @@ class Fir2IrDeclarationStorage(
result
}
if (visibility == Visibilities.LOCAL) {
if (visibility == Visibilities.Local) {
localStorage.putLocalFunction(function, created)
return created
}
@@ -618,7 +618,7 @@ class Fir2IrDeclarationStorage(
isLateInit -> setter?.visibility ?: status.visibility
isConst -> status.visibility
hasJvmFieldAnnotation -> status.visibility
else -> Visibilities.PRIVATE
else -> Visibilities.Private
}
private fun declareIrProperty(
@@ -33,7 +33,7 @@ class Fir2IrScopeCache {
fun getLocalFunction(localFunction: FirFunction<*>): IrSimpleFunction? = localFunctionCache[localFunction]
fun putLocalFunction(localFunction: FirFunction<*>, irFunction: IrSimpleFunction) {
require(localFunction !is FirSimpleFunction || localFunction.visibility == Visibilities.LOCAL)
require(localFunction !is FirSimpleFunction || localFunction.visibility == Visibilities.Local)
localFunctionCache[localFunction] = irFunction
}
@@ -154,7 +154,7 @@ class Fir2IrVisitor(
}
override fun visitRegularClass(regularClass: FirRegularClass, data: Any?): IrElement {
if (regularClass.visibility == Visibilities.LOCAL) {
if (regularClass.visibility == Visibilities.Local) {
val irParent = conversionScope.parentFromStack()
// NB: for implicit types it is possible that local class is already cached
val irClass = classifierStorage.getCachedIrClass(regularClass)?.apply { this.parent = irParent }
@@ -222,7 +222,7 @@ class Fir2IrVisitor(
}
override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?): IrElement {
val irFunction = if (simpleFunction.visibility == Visibilities.LOCAL) {
val irFunction = if (simpleFunction.visibility == Visibilities.Local) {
declarationStorage.createIrFunction(
simpleFunction, irParent = conversionScope.parent(), isLocal = true
)
@@ -667,7 +667,7 @@ class Fir2IrVisitor(
symbol = FirPropertySymbol(name)
isVar = false
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
}
val irLhsVariable = firLhsVariable.accept(this, null) as IrVariable
return elvisExpression.convertWithOffsets { startOffset, endOffset ->
@@ -62,7 +62,7 @@ internal class ClassMemberGenerator(
}
declaration is FirConstructor && declaration.isPrimary -> {
}
declaration is FirRegularClass && declaration.visibility == Visibilities.LOCAL -> {
declaration is FirRegularClass && declaration.visibility == Visibilities.Local -> {
val irNestedClass = classifierStorage.getCachedIrClass(declaration)!!
irNestedClass.parent = irClass
conversionScope.withParent(irNestedClass) {
@@ -211,7 +211,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) {
origin = FirDeclarationOrigin.Synthetic
this.name = name
this.symbol = FirNamedFunctionSymbol(CallableId(classId, name))
this.status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL)
this.status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL)
this.session = components.session
this.returnTypeRef = when (returnType) {
components.irBuiltIns.booleanType -> FirImplicitBooleanTypeRef(null)
@@ -222,7 +222,7 @@ internal class DelegatedMemberGenerator(
val visibility = when (firSuperFunction) {
is FirSimpleFunction -> firSuperFunction.status.visibility
is FirPropertyAccessor -> firSuperFunction.status.visibility
else -> Visibilities.PUBLIC
else -> Visibilities.Public
}
metadata = FirMetadataSource.Function(
buildSimpleFunction {
@@ -77,14 +77,14 @@ class FirBasedSignatureComposer(private val mangler: FirMangler) : Fir2IrSignatu
)
}
is FirTypeAlias -> {
if (declaration.visibility == Visibilities.PRIVATE) return null
if (declaration.visibility == Visibilities.Private) return null
val classId = declaration.symbol.classId
IdSignature.PublicSignature(
classId.packageFqName.asString(), classId.relativeClassName.asString(), builder.hashId, builder.mask
)
}
is FirCallableMemberDeclaration<*> -> {
if (declaration.visibility == Visibilities.PRIVATE) return null
if (declaration.visibility == Visibilities.Private) return null
val callableId = declaration.symbol.callableId
IdSignature.PublicSignature(
callableId.packageName.asString(), callableId.relativeCallableName.asString(), builder.hashId, builder.mask
@@ -108,9 +108,9 @@ class FirJavaElementFinder(
private fun FirRegularClass.packFlags(): Int {
var flags = when (visibility) {
Visibilities.PRIVATE -> ModifierFlags.PRIVATE_MASK
Visibilities.PROTECTED -> ModifierFlags.PROTECTED_MASK
Visibilities.PUBLIC -> ModifierFlags.PUBLIC_MASK
Visibilities.Private -> ModifierFlags.PRIVATE_MASK
Visibilities.Protected -> ModifierFlags.PROTECTED_MASK
Visibilities.Public -> ModifierFlags.PUBLIC_MASK
else -> ModifierFlags.PACKAGE_LOCAL_MASK
}
@@ -361,13 +361,13 @@ class JavaSymbolProvider(
declarations += buildJavaConstructor {
session = this@JavaSymbolProvider.session
symbol = FirConstructorSymbol(constructorId)
status = FirResolvedDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL)
status = FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL)
returnTypeRef = buildResolvedTypeRef {
type = buildSelfTypeRef()
}
valueParameters.addIfNotNull(valueParameterForValueInAnnotationConstructor)
valueParameters += valueParametersForAnnotationConstructor
visibility = Visibilities.PUBLIC
visibility = Visibilities.Public
isInner = false
isPrimary = true
}
@@ -527,16 +527,16 @@ private fun JavaType.toFirResolvedTypeRef(
}
fun OldVisibility.toFirVisibility(): Visibility = when (this) {
OldVisibilities.PRIVATE -> Visibilities.PRIVATE
OldVisibilities.PRIVATE_TO_THIS -> Visibilities.PRIVATE_TO_THIS
OldVisibilities.PROTECTED -> Visibilities.PROTECTED
OldVisibilities.INTERNAL -> Visibilities.INTERNAL
OldVisibilities.PUBLIC -> Visibilities.PUBLIC
OldVisibilities.LOCAL -> Visibilities.LOCAL
OldVisibilities.INVISIBLE_FAKE -> Visibilities.INVISIBLE_FAKE
OldVisibilities.UNKNOWN -> Visibilities.UNKNOWN
OldJavaVisibilities.PACKAGE_VISIBILITY -> JavaVisibilities.PACKAGE_VISIBILITY
OldJavaVisibilities.PROTECTED_AND_PACKAGE -> JavaVisibilities.PROTECTED_AND_PACKAGE
OldJavaVisibilities.PROTECTED_STATIC_VISIBILITY -> JavaVisibilities.PROTECTED_STATIC_VISIBILITY
OldVisibilities.PRIVATE -> Visibilities.Private
OldVisibilities.PRIVATE_TO_THIS -> Visibilities.PrivateToThis
OldVisibilities.PROTECTED -> Visibilities.Protected
OldVisibilities.INTERNAL -> Visibilities.Internal
OldVisibilities.PUBLIC -> Visibilities.Public
OldVisibilities.LOCAL -> Visibilities.Local
OldVisibilities.INVISIBLE_FAKE -> Visibilities.InvisibleFake
OldVisibilities.UNKNOWN -> Visibilities.Unknown
OldJavaVisibilities.PACKAGE_VISIBILITY -> JavaVisibilities.PackageVisibility
OldJavaVisibilities.PROTECTED_AND_PACKAGE -> JavaVisibilities.ProtectedAndPackage
OldJavaVisibilities.PROTECTED_STATIC_VISIBILITY -> JavaVisibilities.ProtectedStaticVisibility
else -> error("Unknown visiblity: $this")
}
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir
object JavaVisibilities {
object PACKAGE_VISIBILITY : Visibility("package", isPublicAPI = false) {
object PackageVisibility : Visibility("package", isPublicAPI = false) {
override fun compareTo(visibility: Visibility): Int? {
if (this === visibility) return 0
if (Visibilities.isPrivate(visibility)) return 1
@@ -14,31 +14,31 @@ object JavaVisibilities {
}
override fun normalize(): Visibility {
return Visibilities.PROTECTED
return Visibilities.Protected
}
override val internalDisplayName: String
get() = "public/*package*/"
}
object PROTECTED_STATIC_VISIBILITY : Visibility("protected_static", isPublicAPI = true) {
object ProtectedStaticVisibility : Visibility("protected_static", isPublicAPI = true) {
override fun normalize(): Visibility {
return Visibilities.PROTECTED
return Visibilities.Protected
}
override val internalDisplayName: String
get() = "protected/*protected static*/"
}
object PROTECTED_AND_PACKAGE : Visibility("protected_and_package", isPublicAPI = true) {
object ProtectedAndPackage : Visibility("protected_and_package", isPublicAPI = true) {
override fun compareTo(visibility: Visibility): Int? {
if (this == visibility) return 0
if (visibility === Visibilities.INTERNAL) return null
if (visibility === Visibilities.Internal) return null
return if (Visibilities.isPrivate(visibility)) 1 else -1
}
override fun normalize(): Visibility {
return Visibilities.PROTECTED
return Visibilities.Protected
}
override val internalDisplayName: String
@@ -746,7 +746,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
returnTypeRef = firProperty.returnTypeRef
receiverTypeRef = null
this.name = name
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL)
symbol = FirNamedFunctionSymbol(CallableId(packageFqName, classFqName, name))
// Refer to FIR backend ClassMemberGenerator for body generation.
@@ -766,7 +766,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
origin = FirDeclarationOrigin.Source
returnTypeRef = classTypeRef
name = copyName
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL)
symbol = FirNamedFunctionSymbol(CallableId(packageFqName, classFqName, copyName))
for ((ktParameter, firProperty) in zippedParameters) {
val propertyName = firProperty.name
@@ -262,7 +262,7 @@ fun generateTemporaryVariable(
symbol = FirPropertySymbol(name)
isVar = false
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
}
fun generateTemporaryVariable(
@@ -363,7 +363,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
origin = FirDeclarationOrigin.Source
returnTypeRef = buildImplicitTypeRef()
isGetter = true
status = FirDeclarationStatusImpl(Visibilities.UNKNOWN, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Unknown, Modality.FINAL)
symbol = FirPropertyAccessorSymbol()
body = FirSingleExpressionBlock(
@@ -390,7 +390,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
origin = FirDeclarationOrigin.Source
returnTypeRef = session.builtinTypes.unitType
isGetter = false
status = FirDeclarationStatusImpl(Visibilities.UNKNOWN, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Unknown, Modality.FINAL)
val parameter = buildValueParameter {
this.session = session
origin = FirDeclarationOrigin.Source
@@ -124,7 +124,7 @@ fun generateDestructuringBlock(
this.isVar = isVar
symbol = FirPropertySymbol(entry.name) // TODO?
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
annotations += entry.annotations
}
}
@@ -383,7 +383,7 @@ class DeclarationsConverter(
return withChildClassName(className, isLocal) {
withCapturedTypeParameters {
val status = FirDeclarationStatusImpl(
if (isLocal) Visibilities.LOCAL else modifiers.getVisibility(),
if (isLocal) Visibilities.Local else modifiers.getVisibility(),
modifiers.getModality()
).apply {
isExpect = modifiers.hasExpect()
@@ -604,7 +604,7 @@ class DeclarationsConverter(
returnTypeRef = classWrapper.delegatedSelfTypeRef
name = enumEntryName
symbol = FirVariableSymbol(CallableId(context.currentClassId, enumEntryName))
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply {
status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL).apply {
isStatic = true
isExpect = classWrapper.hasExpect()
}
@@ -717,7 +717,7 @@ class DeclarationsConverter(
isExpect = modifiers.hasExpect() || classWrapper.hasExpect()
isActual = modifiers.hasActual()
isInner = classWrapper.isInner()
isFromSealedClass = classWrapper.isSealed() && explicitVisibility !== Visibilities.PRIVATE
isFromSealedClass = classWrapper.isSealed() && explicitVisibility !== Visibilities.Private
isFromEnumClass = classWrapper.isEnum()
}
@@ -784,7 +784,7 @@ class DeclarationsConverter(
isExpect = modifiers.hasExpect() || classWrapper.hasExpect()
isActual = modifiers.hasActual()
isInner = classWrapper.isInner()
isFromSealedClass = classWrapper.isSealed() && explicitVisibility !== Visibilities.PRIVATE
isFromSealedClass = classWrapper.isSealed() && explicitVisibility !== Visibilities.Private
isFromEnumClass = classWrapper.isEnum()
}
@@ -942,7 +942,7 @@ class DeclarationsConverter(
expression = expressionConverter.getAsFirExpression(it, "Incorrect delegate expression")
}
}
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL).apply {
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL).apply {
isLateInit = modifiers.hasLateinit()
}
@@ -1058,7 +1058,7 @@ class DeclarationsConverter(
isVar = false
symbol = FirPropertySymbol(name)
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
annotations += modifiers.annotations
}
}
@@ -1096,7 +1096,7 @@ class DeclarationsConverter(
}
var accessorVisibility = modifiers.getVisibility()
if (accessorVisibility == Visibilities.UNKNOWN) {
if (accessorVisibility == Visibilities.Unknown) {
accessorVisibility = propertyVisibility
}
val status =
@@ -1237,7 +1237,7 @@ class DeclarationsConverter(
receiverTypeRef = receiverType
name = functionName
status = FirDeclarationStatusImpl(
if (isLocal) Visibilities.LOCAL else modifiers.getVisibility(),
if (isLocal) Visibilities.Local else modifiers.getVisibility(),
modifiers.getModality()
).apply {
isExpect = modifiers.hasExpect() || classWrapper?.hasExpect() == true
@@ -1442,7 +1442,7 @@ class DeclarationsConverter(
returnTypeRef = firTypeRef
symbol = FirFieldSymbol(CallableId(name))
isVar = false
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
}
)
initializeDelegateStatements.add(
@@ -615,7 +615,7 @@ class ExpressionsConverter(
isVar = false
symbol = FirPropertySymbol(variable.name)
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
}
}
DESTRUCTURING_DECLARATION -> subjectExpression =
@@ -63,9 +63,9 @@ class ClassWrapper(
// See DescriptorUtils#getDefaultConstructorVisibility in core.descriptors
fun defaultConstructorVisibility(): Visibility {
return when {
isObject() || isEnum() || isEnumEntry() -> Visibilities.PRIVATE
isSealed() -> Visibilities.PRIVATE
else -> Visibilities.UNKNOWN
isObject() || isEnum() || isEnumEntry() -> Visibilities.Private
isSealed() -> Visibilities.Private
else -> Visibilities.Unknown
}
}
}
@@ -92,11 +92,11 @@ class Modifier(
fun getVisibility(): Visibility {
return when {
visibilityModifiers.contains(VisibilityModifier.PRIVATE) -> Visibilities.PRIVATE
visibilityModifiers.contains(VisibilityModifier.PUBLIC) -> Visibilities.PUBLIC
visibilityModifiers.contains(VisibilityModifier.PROTECTED) -> Visibilities.PROTECTED
visibilityModifiers.contains(VisibilityModifier.INTERNAL) -> Visibilities.INTERNAL
else -> Visibilities.UNKNOWN
visibilityModifiers.contains(VisibilityModifier.PRIVATE) -> Visibilities.Private
visibilityModifiers.contains(VisibilityModifier.PUBLIC) -> Visibilities.Public
visibilityModifiers.contains(VisibilityModifier.PROTECTED) -> Visibilities.Protected
visibilityModifiers.contains(VisibilityModifier.INTERNAL) -> Visibilities.Internal
else -> Visibilities.Unknown
}
}
@@ -111,7 +111,7 @@ internal fun generateDestructuringBlock(
}
this.isVar = isVar
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
symbol = FirPropertySymbol(name)
entry.extractAnnotationsTo(this)
}
@@ -115,11 +115,11 @@ class RawFirBuilder(
private val KtModifierListOwner.visibility: Visibility
get() = with(modifierList) {
when {
this == null -> Visibilities.UNKNOWN
hasModifier(PRIVATE_KEYWORD) -> Visibilities.PRIVATE
hasModifier(PUBLIC_KEYWORD) -> Visibilities.PUBLIC
hasModifier(PROTECTED_KEYWORD) -> Visibilities.PROTECTED
else -> if (hasModifier(INTERNAL_KEYWORD)) Visibilities.INTERNAL else Visibilities.UNKNOWN
this == null -> Visibilities.Unknown
hasModifier(PRIVATE_KEYWORD) -> Visibilities.Private
hasModifier(PUBLIC_KEYWORD) -> Visibilities.Public
hasModifier(PROTECTED_KEYWORD) -> Visibilities.Protected
else -> if (hasModifier(INTERNAL_KEYWORD)) Visibilities.Internal else Visibilities.Unknown
}
}
@@ -276,7 +276,7 @@ class RawFirBuilder(
isGetter: Boolean,
): FirPropertyAccessor {
val accessorVisibility =
if (this?.visibility != null && this.visibility != Visibilities.UNKNOWN) this.visibility else property.visibility
if (this?.visibility != null && this.visibility != Visibilities.Unknown) this.visibility else property.visibility
// Downward propagation of `inline` and `external` modifiers (from property to its accessors)
val status =
FirDeclarationStatusImpl(accessorVisibility, Modality.FINAL).apply {
@@ -504,7 +504,7 @@ class RawFirBuilder(
returnTypeRef = type
symbol = FirFieldSymbol(CallableId(name))
isVar = false
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
}
initializeDelegateStatements.add(
buildVariableAssignment {
@@ -610,9 +610,9 @@ class RawFirBuilder(
// See DescriptorUtils#getDefaultConstructorVisibility in core.descriptors
fun defaultVisibility() = when {
owner is KtObjectDeclaration || owner.hasModifier(ENUM_KEYWORD) || owner is KtEnumEntry -> Visibilities.PRIVATE
owner.hasModifier(SEALED_KEYWORD) -> Visibilities.PRIVATE
else -> Visibilities.UNKNOWN
owner is KtObjectDeclaration || owner.hasModifier(ENUM_KEYWORD) || owner is KtEnumEntry -> Visibilities.Private
owner.hasModifier(SEALED_KEYWORD) -> Visibilities.Private
else -> Visibilities.Unknown
}
val explicitVisibility = this?.visibility
@@ -620,7 +620,7 @@ class RawFirBuilder(
isExpect = this@toFirConstructor?.hasExpectModifier() == true || owner.hasExpectModifier()
isActual = this@toFirConstructor?.hasActualModifier() == true
isInner = owner.hasModifier(INNER_KEYWORD)
isFromSealedClass = owner.hasModifier(SEALED_KEYWORD) && explicitVisibility !== Visibilities.PRIVATE
isFromSealedClass = owner.hasModifier(SEALED_KEYWORD) && explicitVisibility !== Visibilities.Private
isFromEnumClass = owner.hasModifier(ENUM_KEYWORD)
}
return buildPrimaryConstructor {
@@ -674,7 +674,7 @@ class RawFirBuilder(
origin = FirDeclarationOrigin.Source
returnTypeRef = delegatedEnumSelfTypeRef
name = nameAsSafeName
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply {
status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL).apply {
isStatic = true
isExpect = containingClassOrObject?.hasExpectModifier() == true
}
@@ -741,7 +741,7 @@ class RawFirBuilder(
else -> throw AssertionError("Unexpected class or object: ${classOrObject.text}")
}
val status = FirDeclarationStatusImpl(
if (classOrObject.isLocal) Visibilities.LOCAL else classOrObject.visibility,
if (classOrObject.isLocal) Visibilities.Local else classOrObject.visibility,
classOrObject.modality,
).apply {
isExpect = classOrObject.hasExpectModifier()
@@ -921,7 +921,7 @@ class RawFirBuilder(
labelName = runIf(!name.isSpecial) { name.identifier }
symbol = FirNamedFunctionSymbol(callableIdForName(function.nameAsSafeName, function.isLocal))
status = FirDeclarationStatusImpl(
if (function.isLocal) Visibilities.LOCAL else function.visibility,
if (function.isLocal) Visibilities.Local else function.visibility,
function.modality,
).apply {
isExpect = function.hasExpectModifier() || function.containingClassOrObject?.hasExpectModifier() == true
@@ -1080,7 +1080,7 @@ class RawFirBuilder(
isExpect = hasExpectModifier() || owner.hasExpectModifier()
isActual = hasActualModifier()
isInner = owner.hasModifier(INNER_KEYWORD)
isFromSealedClass = owner.hasModifier(SEALED_KEYWORD) && explicitVisibility !== Visibilities.PRIVATE
isFromSealedClass = owner.hasModifier(SEALED_KEYWORD) && explicitVisibility !== Visibilities.Private
isFromEnumClass = owner.hasModifier(ENUM_KEYWORD)
}
symbol = FirConstructorSymbol(callableIdForClassConstructor())
@@ -1154,7 +1154,7 @@ class RawFirBuilder(
}
}
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL).apply {
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL).apply {
isLateInit = hasModifier(LATEINIT_KEYWORD)
}
@@ -1456,7 +1456,7 @@ class RawFirBuilder(
isVar = false
symbol = FirPropertySymbol(name)
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
}
}
else -> null
@@ -42,7 +42,7 @@ sealed class FirEffectiveVisibilityImpl(
override fun relation(other: FirEffectiveVisibility) =
if (this == other || Local == other) Permissiveness.SAME else Permissiveness.LESS
override fun toVisibility() = Visibilities.PRIVATE
override fun toVisibility() = Visibilities.Private
}
// Effectively same as Private
@@ -50,14 +50,14 @@ sealed class FirEffectiveVisibilityImpl(
override fun relation(other: FirEffectiveVisibility) =
if (this == other || Private == other) Permissiveness.SAME else Permissiveness.LESS
override fun toVisibility() = Visibilities.LOCAL
override fun toVisibility() = Visibilities.Local
}
object Public : FirEffectiveVisibilityImpl("public", publicApi = true) {
override fun relation(other: FirEffectiveVisibility) =
if (this == other) Permissiveness.SAME else Permissiveness.MORE
override fun toVisibility() = Visibilities.PUBLIC
override fun toVisibility() = Visibilities.Public
}
abstract class InternalOrPackage protected constructor(internal: Boolean) : FirEffectiveVisibilityImpl(
@@ -79,11 +79,11 @@ sealed class FirEffectiveVisibilityImpl(
}
object Internal : InternalOrPackage(true) {
override fun toVisibility() = Visibilities.INTERNAL
override fun toVisibility() = Visibilities.Internal
}
object PackagePrivate : InternalOrPackage(false) {
override fun toVisibility() = Visibilities.PRIVATE
override fun toVisibility() = Visibilities.Private
}
class Protected(
@@ -124,7 +124,7 @@ sealed class FirEffectiveVisibilityImpl(
is InternalOrPackage -> InternalProtected(containerSymbol, session)
}
override fun toVisibility() = Visibilities.PROTECTED
override fun toVisibility() = Visibilities.Protected
}
// Lower bound for all protected visibilities
@@ -142,7 +142,7 @@ sealed class FirEffectiveVisibilityImpl(
is InternalOrPackage, is InternalProtected -> InternalProtectedBound
}
override fun toVisibility() = Visibilities.PROTECTED
override fun toVisibility() = Visibilities.Protected
}
// Lower bound for internal and protected(C)
@@ -180,7 +180,7 @@ sealed class FirEffectiveVisibilityImpl(
ProtectedBound -> InternalProtectedBound
}
override fun toVisibility() = Visibilities.PRIVATE
override fun toVisibility() = Visibilities.Private
}
// Lower bound for internal and protected lower bound
@@ -191,7 +191,7 @@ sealed class FirEffectiveVisibilityImpl(
InternalProtectedBound -> Permissiveness.SAME
}
override fun toVisibility() = Visibilities.PRIVATE
override fun toVisibility() = Visibilities.Private
}
override fun lowerBound(other: FirEffectiveVisibility): FirEffectiveVisibility {
@@ -81,11 +81,11 @@ private fun Visibility.forVisibility(
session: FirSession, containerSymbol: FirClassLikeSymbol<*>?
): FirEffectiveVisibility =
when (this) {
Visibilities.PRIVATE, Visibilities.PRIVATE_TO_THIS, Visibilities.INVISIBLE_FAKE -> Private
Visibilities.PROTECTED -> Protected(containerSymbol, session)
Visibilities.INTERNAL -> Internal
Visibilities.PUBLIC -> Public
Visibilities.LOCAL -> Local
Visibilities.Private, Visibilities.PrivateToThis, Visibilities.InvisibleFake -> Private
Visibilities.Protected -> Protected(containerSymbol, session)
Visibilities.Internal -> Internal
Visibilities.Public -> Public
Visibilities.Local -> Local
// NB: visibility must be already normalized here, so e.g. no JavaVisibilities are possible at this point
// TODO: else -> throw AssertionError("Visibility $name is not allowed in forVisibility")
JavaVisibilities.PACKAGE_VISIBILITY -> PackagePrivate
@@ -153,7 +153,7 @@ fun deserializeClassToSymbol(
name = enumEntryName
this.symbol = FirVariableSymbol(CallableId(classId, enumEntryName))
this.status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.FINAL
).apply {
isStatic = true
@@ -239,7 +239,7 @@ private fun FirRegularClassBuilder.addCloneForArrayIfNeeded(classId: ClassId) {
isNullable = false
)
}
status = FirResolvedDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply {
status = FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL).apply {
isOverride = true
}
name = CLONE
@@ -11,22 +11,22 @@ import org.jetbrains.kotlin.metadata.ProtoBuf
object FirProtoEnumFlags {
fun visibility(visibility: ProtoBuf.Visibility?): Visibility = when (visibility) {
ProtoBuf.Visibility.INTERNAL -> Visibilities.INTERNAL
ProtoBuf.Visibility.PRIVATE -> Visibilities.PRIVATE
ProtoBuf.Visibility.PRIVATE_TO_THIS -> Visibilities.PRIVATE_TO_THIS
ProtoBuf.Visibility.PROTECTED -> Visibilities.PROTECTED
ProtoBuf.Visibility.PUBLIC -> Visibilities.PUBLIC
ProtoBuf.Visibility.LOCAL -> Visibilities.LOCAL
else -> Visibilities.PRIVATE
ProtoBuf.Visibility.INTERNAL -> Visibilities.Internal
ProtoBuf.Visibility.PRIVATE -> Visibilities.Private
ProtoBuf.Visibility.PRIVATE_TO_THIS -> Visibilities.PrivateToThis
ProtoBuf.Visibility.PROTECTED -> Visibilities.Protected
ProtoBuf.Visibility.PUBLIC -> Visibilities.Public
ProtoBuf.Visibility.LOCAL -> Visibilities.Local
else -> Visibilities.Private
}
fun visibility(visibility: Visibility): ProtoBuf.Visibility = when (visibility) {
Visibilities.INTERNAL -> ProtoBuf.Visibility.INTERNAL
Visibilities.PUBLIC -> ProtoBuf.Visibility.PUBLIC
Visibilities.PRIVATE -> ProtoBuf.Visibility.PRIVATE
Visibilities.PRIVATE_TO_THIS -> ProtoBuf.Visibility.PRIVATE_TO_THIS
Visibilities.PROTECTED -> ProtoBuf.Visibility.PROTECTED
Visibilities.LOCAL -> ProtoBuf.Visibility.LOCAL
Visibilities.Internal -> ProtoBuf.Visibility.INTERNAL
Visibilities.Public -> ProtoBuf.Visibility.PUBLIC
Visibilities.Private -> ProtoBuf.Visibility.PRIVATE
Visibilities.PrivateToThis -> ProtoBuf.Visibility.PRIVATE_TO_THIS
Visibilities.Protected -> ProtoBuf.Visibility.PROTECTED
Visibilities.Local -> ProtoBuf.Visibility.LOCAL
else -> throw IllegalArgumentException("Unknown visibility: $visibility")
}
}
@@ -468,10 +468,10 @@ internal object CheckVisibility : CheckerStage() {
JavaVisibilities.PACKAGE_VISIBILITY -> {
symbol.packageFqName() == useSiteFile.packageFqName
}
Visibilities.INTERNAL -> {
Visibilities.Internal -> {
declaration.session == callInfo.session
}
Visibilities.PRIVATE, Visibilities.PRIVATE_TO_THIS -> {
Visibilities.Private, Visibilities.PrivateToThis -> {
if (declaration.session == callInfo.session) {
if (ownerId == null || declaration is FirConstructor && declaration.isFromSealedClass) {
val candidateFile = when (symbol) {
@@ -489,7 +489,7 @@ internal object CheckVisibility : CheckerStage() {
declaration is FirSimpleFunction && declaration.isAllowedToBeAccessedFromOutside()
}
}
Visibilities.PROTECTED -> {
Visibilities.Protected -> {
ownerId != null && canSeeProtectedMemberOf(containingDeclarations, candidate.dispatchReceiverValue, ownerId, session)
}
JavaVisibilities.PROTECTED_AND_PACKAGE, JavaVisibilities.PROTECTED_STATIC_VISIBILITY -> {
@@ -89,7 +89,7 @@ class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider: Kot
origin = FirDeclarationOrigin.Synthetic
name = relativeClassName.shortName()
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.ABSTRACT
).apply {
isExpect = false
@@ -129,7 +129,7 @@ class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider: Kot
)
val name = OperatorNameConventions.INVOKE
val functionStatus = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.ABSTRACT
).apply {
isExpect = false
@@ -41,7 +41,7 @@ class FirCloneableSymbolProvider(session: FirSession, scopeProvider: FirScopePro
origin = FirDeclarationOrigin.Library
this.session = session
status = FirDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.ABSTRACT
)
classKind = ClassKind.INTERFACE
@@ -52,7 +52,7 @@ class FirCloneableSymbolProvider(session: FirSession, scopeProvider: FirScopePro
returnTypeRef = buildResolvedTypeRef {
type = session.builtinTypes.anyType.type
}
status = FirDeclarationStatusImpl(Visibilities.PROTECTED, Modality.OPEN)
status = FirDeclarationStatusImpl(Visibilities.Protected, Modality.OPEN)
name = CLONE
symbol = FirNamedFunctionSymbol(CallableId(CLONEABLE_CLASS_ID, CLONE))
}
@@ -183,11 +183,11 @@ fun FirDeclaration.resolveStatus(
containingClass: FirClass<*>?,
isLocal: Boolean
): FirDeclarationStatus {
if (status.visibility == Visibilities.UNKNOWN || status.modality == null || status.modality == Modality.OPEN) {
if (status.visibility == Visibilities.Unknown || status.modality == null || status.modality == Modality.OPEN) {
val visibility = when (status.visibility) {
Visibilities.UNKNOWN -> when {
isLocal -> Visibilities.LOCAL
this is FirConstructor && containingClass is FirAnonymousObject -> Visibilities.PRIVATE
Visibilities.Unknown -> when {
isLocal -> Visibilities.Local
this is FirConstructor && containingClass is FirAnonymousObject -> Visibilities.Private
else -> resolveVisibility(containingClass)
}
else -> status.visibility
@@ -219,10 +219,10 @@ private fun FirDeclaration.resolveVisibility(containingClass: FirClass<*>?): Vis
(containingClass.classKind == ClassKind.ENUM_CLASS || containingClass.classKind == ClassKind.ENUM_ENTRY ||
containingClass.modality == Modality.SEALED)
) {
return Visibilities.PRIVATE
return Visibilities.Private
}
}
return Visibilities.PUBLIC // TODO (overrides)
return Visibilities.Public // TODO (overrides)
}
private fun FirDeclaration.resolveModality(containingClass: FirClass<*>?): Modality {
@@ -233,7 +233,7 @@ private fun FirDeclaration.resolveModality(containingClass: FirClass<*>?): Modal
containingClass == null -> Modality.FINAL
containingClass.classKind == ClassKind.INTERFACE -> {
when {
visibility == Visibilities.PRIVATE ->
visibility == Visibilities.Private ->
Modality.FINAL
!this.hasOwnBodyOrAccessorBody() ->
Modality.ABSTRACT
@@ -287,7 +287,7 @@ class FirSyntheticCallGenerator(
origin = FirDeclarationOrigin.Synthetic
this.symbol = symbol
this.name = name
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply {
status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL).apply {
isExpect = false
isActual = false
isOverride = false
@@ -134,7 +134,7 @@ class FirClassSubstitutionScope(
is FirConstructorSymbol -> return original
else -> throw AssertionError("Should not be here")
}
if (skipPrivateMembers && member.visibility == Visibilities.PRIVATE) return original
if (skipPrivateMembers && member.visibility == Visibilities.Private) return original
val (newTypeParameters, newReceiverType, newReturnType, newSubstitutor) = createSubstitutedData(member)
val newParameterTypes = member.valueParameters.map {
@@ -185,7 +185,7 @@ class FirClassSubstitutionScope(
private fun createFakeOverrideProperty(original: FirPropertySymbol): FirPropertySymbol {
if (substitutor == ConeSubstitutor.Empty) return original
val member = original.fir
if (skipPrivateMembers && member.visibility == Visibilities.PRIVATE) return original
if (skipPrivateMembers && member.visibility == Visibilities.Private) return original
val (newTypeParameters, newReceiverType, newReturnType) = createSubstitutedData(member)
if (newReceiverType == null &&
@@ -230,7 +230,7 @@ class FirClassSubstitutionScope(
private fun createFakeOverrideField(original: FirFieldSymbol): FirFieldSymbol {
if (substitutor == ConeSubstitutor.Empty) return original
val member = original.fir
if (skipPrivateMembers && member.visibility == Visibilities.PRIVATE) return original
if (skipPrivateMembers && member.visibility == Visibilities.Private) return original
val returnType = typeCalculator.tryCalculateReturnType(member).type
val newReturnType = returnType.substitute() ?: return original
@@ -241,7 +241,7 @@ class FirClassSubstitutionScope(
private fun createFakeOverrideAccessor(original: FirAccessorSymbol): FirAccessorSymbol {
if (substitutor == ConeSubstitutor.Empty) return original
val member = original.fir as FirSyntheticProperty
if (skipPrivateMembers && member.visibility == Visibilities.PRIVATE) return original
if (skipPrivateMembers && member.visibility == Visibilities.Private) return original
val returnType = typeCalculator.tryCalculateReturnType(member).type
val newReturnType = returnType.substitute()
@@ -80,7 +80,7 @@ class FirIntegerLiteralTypeScope(private val session: FirSession, val isUnsigned
FirILTTypeRefPlaceHolder(isUnsigned),
receiverTypeRef = null,
ALL_OPERATORS.getValue(name),
FirResolvedDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL),
FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL),
symbol
).apply {
resolvePhase = FirResolvePhase.BODY_RESOLVE
@@ -47,7 +47,7 @@ fun FirRegularClassBuilder.generateValuesFunction(
)
}
name = ENUM_VALUES
this.status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply {
this.status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL).apply {
isStatic = true
isExpect = makeExpect
}
@@ -74,7 +74,7 @@ fun FirRegularClassBuilder.generateValueOfFunction(
)
}
name = ENUM_VALUE_OF
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply {
status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL).apply {
isStatic = true
isExpect = makeExpect
}
@@ -43,8 +43,8 @@ fun FirElement.render(mode: FirRenderer.RenderMode = FirRenderer.RenderMode.Norm
class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderMode.Normal) : FirVisitorVoid() {
companion object {
private val visibilitiesToRenderEffectiveSet = setOf(
Visibilities.PRIVATE, Visibilities.PRIVATE_TO_THIS, Visibilities.INTERNAL,
Visibilities.PROTECTED, Visibilities.PUBLIC, Visibilities.LOCAL
Visibilities.Private, Visibilities.PrivateToThis, Visibilities.Internal,
Visibilities.Protected, Visibilities.Public, Visibilities.Local
)
}
@@ -187,13 +187,13 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
private fun Visibility.asString(effectiveVisibility: FirEffectiveVisibility? = null): String {
val itself = when (this) {
Visibilities.UNKNOWN -> return "public?"
Visibilities.Unknown -> return "public?"
else -> toString()
}
if (effectiveVisibility == null || effectiveVisibility == FirEffectiveVisibility.Default) return itself
val effectiveAsVisibility = effectiveVisibility.toVisibility()
if (effectiveAsVisibility == this) return itself
if (effectiveAsVisibility == Visibilities.PRIVATE && this == Visibilities.PRIVATE_TO_THIS) return itself
if (effectiveAsVisibility == Visibilities.Private && this == Visibilities.PrivateToThis) return itself
if (this !in visibilitiesToRenderEffectiveSet) return itself
return itself + "[${effectiveVisibility.name}]"
}
@@ -43,7 +43,7 @@ inline val FirRegularClass.isFun get() = status.isFun
inline val FirMemberDeclaration.modality get() = status.modality
inline val FirMemberDeclaration.visibility get() = status.visibility
inline val FirMemberDeclaration.allowsToHaveFakeOverride: Boolean
get() = !Visibilities.isPrivate(visibility) && visibility != Visibilities.INVISIBLE_FAKE
get() = !Visibilities.isPrivate(visibility) && visibility != Visibilities.InvisibleFake
inline val FirMemberDeclaration.isActual get() = status.isActual
inline val FirMemberDeclaration.isExpect get() = status.isExpect
inline val FirMemberDeclaration.isInner get() = status.isInner
@@ -65,10 +65,10 @@ inline val FirPropertyAccessor.visibility get() = status.visibility
inline val FirPropertyAccessor.isInline get() = status.isInline
inline val FirPropertyAccessor.isExternal get() = status.isExternal
inline val FirPropertyAccessor.allowsToHaveFakeOverride: Boolean
get() = !Visibilities.isPrivate(visibility) && visibility != Visibilities.INVISIBLE_FAKE
get() = !Visibilities.isPrivate(visibility) && visibility != Visibilities.InvisibleFake
inline val FirRegularClass.isLocal get() = symbol.classId.isLocal
inline val FirSimpleFunction.isLocal get() = status.visibility == Visibilities.LOCAL
inline val FirSimpleFunction.isLocal get() = status.visibility == Visibilities.Local
fun FirRegularClassBuilder.addDeclaration(declaration: FirDeclaration) {
declarations += declaration
@@ -63,10 +63,10 @@ class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerEx
val symbol = (argument.calleeReference as? FirResolvedNamedReference)?.resolvedSymbol as? FirVariableSymbol<*> ?: return null
val name = symbol.callableId.takeIf { it.classId == VisibilityClassId }?.callableName ?: return null
return when (name) {
PublicName -> Visibilities.PUBLIC
InternalName -> Visibilities.INTERNAL
PrivateName -> Visibilities.PRIVATE
ProtectedName -> Visibilities.PROTECTED
PublicName -> Visibilities.Public
InternalName -> Visibilities.Internal
PrivateName -> Visibilities.Private
ProtectedName -> Visibilities.Protected
else -> null
}
}
@@ -40,7 +40,7 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.Plugin(key)
status = FirResolvedDeclarationStatusImpl(
Visibilities.PRIVATE,
Visibilities.Private,
Modality.FINAL
).apply {
isInner = true
@@ -65,7 +65,7 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio
type = ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(classId), emptyArray(), isNullable = false)
}
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.FINAL
)
symbol = FirConstructorSymbol(CallableId(classId, classId.shortClassName))
@@ -77,7 +77,7 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio
origin = FirDeclarationOrigin.Plugin(key)
returnTypeRef = session.builtinTypes.intType
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.FINAL
)
name = Name.identifier("hello")
@@ -38,7 +38,7 @@ class AllOpenRecursiveNestedClassGenerator(session: FirSession) : FirDeclaration
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.Plugin(key)
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.FINAL
)
classKind = ClassKind.CLASS
@@ -36,7 +36,7 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.Plugin(key)
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.FINAL
)
classKind = ClassKind.OBJECT
@@ -55,7 +55,7 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration
origin = FirDeclarationOrigin.Plugin(key)
returnTypeRef = session.builtinTypes.intType
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
Visibilities.Public,
Modality.FINAL
)
name = Name.identifier("hello")