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