diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt index ef20cc795de..ea551f96bb2 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt @@ -9,6 +9,8 @@ import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSymbolOwner +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression @@ -30,7 +32,6 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.lexer.KtModifierKeywordToken import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.KtModifierList -import org.jetbrains.kotlin.psi.psiUtil.toVisibility import org.jetbrains.kotlin.psi.psiUtil.visibilityModifierType import org.jetbrains.kotlin.utils.addToStdlib.safeAs @@ -222,7 +223,17 @@ fun FirSimpleFunction.overriddenFunctions( /** * Returns the visibility by given KtModifierList */ -fun KtModifierList?.getVisibility() = this?.visibilityModifierType()?.toVisibility() +fun KtModifierList?.getVisibility() = this?.visibilityModifierType()?.toFirVisibility() + +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 + else -> throw IllegalArgumentException("Unknown visibility modifier:$this") + } +} /** * Returns the modality of the class diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConstructorAllowedChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConstructorAllowedChecker.kt index 18cb7f61f60..2383ab35a3f 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConstructorAllowedChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConstructorAllowedChecker.kt @@ -9,8 +9,8 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticFactory0 @@ -49,4 +49,4 @@ object FirConstructorAllowedChecker : FirConstructorChecker() { ) { source?.let { report(factory.on(it)) } } -} \ No newline at end of file +} diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirLocalEntityNotAllowedChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirLocalEntityNotAllowedChecker.kt index a84c00ea908..bb4b10265ab 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirLocalEntityNotAllowedChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirLocalEntityNotAllowedChecker.kt @@ -6,12 +6,15 @@ package org.jetbrains.kotlin.fir.analysis.checkers.declaration import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirDeclaration +import org.jetbrains.kotlin.fir.declarations.FirRegularClass +import org.jetbrains.kotlin.fir.declarations.isCompanion +import org.jetbrains.kotlin.fir.declarations.visibility import org.jetbrains.kotlin.name.Name object FirLocalEntityNotAllowedChecker : FirBasicDeclarationChecker() { @@ -35,4 +38,4 @@ object FirLocalEntityNotAllowedChecker : FirBasicDeclarationChecker() { private fun DiagnosticReporter.reportLocalInterfaceNotAllowed(source: FirSourceElement?, name: Name) { source?.let { report(FirErrors.LOCAL_INTERFACE_NOT_ALLOWED.on(it, name)) } } -} \ No newline at end of file +} diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantVisibilityModifierChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantVisibilityModifierChecker.kt index 386f3526693..a385a1310cd 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantVisibilityModifierChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantVisibilityModifierChecker.kt @@ -7,9 +7,9 @@ package org.jetbrains.kotlin.fir.analysis.checkers.extended import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirFakeSourceElement +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.analysis.checkers.* import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirBasicDeclarationChecker diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/Visibilities.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/Visibilities.kt new file mode 100644 index 00000000000..99caf745f55 --- /dev/null +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/Visibilities.kt @@ -0,0 +1,57 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir + +object Visibilities { + object PRIVATE : Visibility("private", isPublicAPI = false) + + object PRIVATE_TO_THIS : 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) + + @OptIn(ExperimentalStdlibApi::class) + private val ORDERED_VISIBILITIES: Map = buildMap { + put(PRIVATE_TO_THIS, 0) + put(PRIVATE, 0); + put(INTERNAL, 1); + put(PROTECTED, 1); + put(PUBLIC, 2); + } + + fun compare(first: Visibility, second: Visibility): Int? { + val result = first.compareTo(second) + if (result != null) { + return result + } + val oppositeResult = second.compareTo(first) + return if (oppositeResult != null) { + -oppositeResult + } else null + } + + internal fun compareLocal(first: Visibility, second: Visibility): Int? { + if (first === second) return 0 + val firstIndex = ORDERED_VISIBILITIES[first] + val secondIndex = ORDERED_VISIBILITIES[second] + return if (firstIndex == null || secondIndex == null || firstIndex == secondIndex) { + null + } else firstIndex - secondIndex + } + + fun isPrivate(visibility: Visibility): Boolean { + return visibility === PRIVATE || visibility === PRIVATE_TO_THIS + } + + val DEFAULT_VISIBILITY = PUBLIC +} diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/Visibility.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/Visibility.kt new file mode 100644 index 00000000000..a4474a35652 --- /dev/null +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/Visibility.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir + +abstract class Visibility protected constructor( + val name: String, + val isPublicAPI: Boolean +) { + open val internalDisplayName: String + get() = name + + final override fun toString() = internalDisplayName + + open fun compareTo(visibility: Visibility): Int? { + return Visibilities.compareLocal(this, visibility) + } + + open fun normalize(): Visibility = this +} + diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index d71927a5bc4..c102d68ac1c 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -10,8 +10,6 @@ import kotlinx.html.stream.appendHTML import org.apache.commons.lang.StringEscapeUtils import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.backend.left import org.jetbrains.kotlin.fir.backend.right diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt index a1c91365c3b..90135f74572 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt @@ -7,17 +7,17 @@ package org.jetbrains.kotlin.fir.serialization import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor import org.jetbrains.kotlin.config.LanguageFeature -import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.fir.FirAnnotationContainer -import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor import org.jetbrains.kotlin.fir.deserialization.CONTINUATION_INTERFACE_CLASS_ID +import org.jetbrains.kotlin.fir.deserialization.FirProtoEnumFlags import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirConstExpression import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression -import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.calls.varargElementType import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.fullyExpandedType @@ -90,7 +90,7 @@ class FirElementSerializer private constructor( val modality = regularClass?.modality ?: Modality.FINAL val flags = Flags.getClassFlags( klass.nonSourceAnnotations(session).isNotEmpty(), - ProtoEnumFlags.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, @@ -208,7 +208,7 @@ class FirElementSerializer private constructor( val modality = property.modality!! val defaultAccessorFlags = Flags.getAccessorFlags( hasAnnotations, - ProtoEnumFlags.visibility(normalizeVisibility(property)), + FirProtoEnumFlags.visibility(normalizeVisibility(property)), ProtoEnumFlags.modality(modality), false, false, false ) @@ -243,9 +243,9 @@ class FirElementSerializer private constructor( val flags = Flags.getPropertyFlags( hasAnnotations, - ProtoEnumFlags.visibility(normalizeVisibility(property)), + FirProtoEnumFlags.visibility(normalizeVisibility(property)), ProtoEnumFlags.modality(modality), - ProtoEnumFlags.memberKind(CallableMemberDescriptor.Kind.DECLARATION), + ProtoBuf.MemberKind.DECLARATION, property.isVar, hasGetter, hasSetter, hasConstant, property.isConst, property.isLateInit, property.isExternal, property.delegateFieldSymbol != null, property.isExpect ) @@ -301,9 +301,9 @@ class FirElementSerializer private constructor( val flags = Flags.getFunctionFlags( function.nonSourceAnnotations(session).isNotEmpty(), - ProtoEnumFlags.visibility(simpleFunction?.let { normalizeVisibility(it) } ?: Visibilities.LOCAL), + FirProtoEnumFlags.visibility(simpleFunction?.let { normalizeVisibility(it) } ?: Visibilities.LOCAL), ProtoEnumFlags.modality(simpleFunction?.modality ?: Modality.FINAL), - ProtoEnumFlags.memberKind(CallableMemberDescriptor.Kind.DECLARATION), + ProtoBuf.MemberKind.DECLARATION, simpleFunction?.isOperator == true, simpleFunction?.isInfix == true, simpleFunction?.isInline == true, @@ -386,7 +386,7 @@ class FirElementSerializer private constructor( val flags = Flags.getTypeAliasFlags( typeAlias.nonSourceAnnotations(session).isNotEmpty(), - ProtoEnumFlags.visibility(normalizeVisibility(typeAlias)) + FirProtoEnumFlags.visibility(normalizeVisibility(typeAlias)) ) if (flags != builder.flags) { builder.flags = flags @@ -439,7 +439,7 @@ class FirElementSerializer private constructor( val flags = Flags.getConstructorFlags( constructor.nonSourceAnnotations(session).isNotEmpty(), - ProtoEnumFlags.visibility(normalizeVisibility(constructor)), + FirProtoEnumFlags.visibility(normalizeVisibility(constructor)), !constructor.isPrimary, true // TODO: supply 'hasStableParameterNames' flag for metadata ) @@ -676,7 +676,7 @@ class FirElementSerializer private constructor( !accessor.isExternal && !accessor.isInline return Flags.getAccessorFlags( accessor.nonSourceAnnotations(session).isNotEmpty(), - ProtoEnumFlags.visibility(normalizeVisibility(accessor)), + FirProtoEnumFlags.visibility(normalizeVisibility(accessor)), ProtoEnumFlags.modality(accessor.modality!!), !isDefault, accessor.isExternal, diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt index 0ee7bfe250c..ca18052c624 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt @@ -13,8 +13,8 @@ import org.jetbrains.kotlin.config.JvmDefaultMode import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.PropertyDescriptor -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.backend.FirMetadataSource import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.inference.isBuiltinFunctionalType diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index 4a7cef5ef97..f5138929488 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -9,14 +9,11 @@ import com.intellij.psi.PsiCompiledElement import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.fir.FirElement -import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.expressions.FirConstExpression import org.jetbrains.kotlin.fir.expressions.FirConstKind -import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference import org.jetbrains.kotlin.fir.references.FirThisReference @@ -46,6 +43,7 @@ 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 @@ -53,6 +51,8 @@ import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.types.AbstractTypeCheckerContext import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.util.OperatorNameConventions +import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities +import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility internal fun FirElement.convertWithOffsets( f: (startOffset: Int, endOffset: Int) -> T @@ -492,3 +492,15 @@ fun Fir2IrComponents.createTemporaryVariableForSafeCallConstruction( return Pair(receiverVariable, variableSymbol) } + +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 + else -> error("Unknown visiblity: $this") +} diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index 3405e12377f..5b1300b02f7 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.lazy.Fir2IrLazyClass import org.jetbrains.kotlin.fir.resolve.firProvider @@ -192,7 +192,7 @@ class Fir2IrClassifierStorage( declareIrTypeAlias(signature) { symbol -> val irTypeAlias = irFactory.createTypeAlias( startOffset, endOffset, symbol, - typeAlias.name, typeAlias.visibility, + typeAlias.name, typeAlias.visibility.toOldVisibility(), typeAlias.expandedTypeRef.toIrType(), typeAlias.isActual, IrDeclarationOrigin.DEFINED ).apply { @@ -237,7 +237,7 @@ class Fir2IrClassifierStorage( symbol, regularClass.name, regularClass.classKind, - visibility, + visibility.toOldVisibility(), modality, isCompanion = regularClass.isCompanion, isInner = regularClass.isInner, @@ -277,7 +277,7 @@ class Fir2IrClassifierStorage( startOffset, endOffset, origin, symbol, name, // NB: for unknown reason, IR uses 'CLASS' kind for simple anonymous objects anonymousObject.classKind.takeIf { it == ClassKind.ENUM_ENTRY } ?: ClassKind.CLASS, - visibility, modality + visibility.toOldVisibility(), modality ).apply { metadata = FirMetadataSource.Class(anonymousObject) setThisReceiver(anonymousObject.typeParameters) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index a48c7f1067e..087cff5c730 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -7,9 +7,13 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.builtins.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAMES -import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.PropertyDescriptor +import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.fir.FirAnnotationContainer +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.backend.generators.DelegatedMemberGenerator import org.jetbrains.kotlin.fir.declarations.* @@ -52,6 +56,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility @OptIn(ObsoleteDescriptorBasedAPI::class) class Fir2IrDeclarationStorage( @@ -401,7 +406,7 @@ class Fir2IrDeclarationStorage( val result = declareIrSimpleFunction(signature, simpleFunction?.containerSource) { symbol -> irFactory.createFunction( startOffset, endOffset, updatedOrigin, symbol, - name, visibility, + name, visibility.toOldVisibility(), simpleFunction?.modality ?: Modality.FINAL, function.returnTypeRef.toIrType(), isInline = simpleFunction?.isInline == true, @@ -478,7 +483,7 @@ class Fir2IrDeclarationStorage( declareIrConstructor(signature) { symbol -> irFactory.createConstructor( startOffset, endOffset, origin, symbol, - Name.special(""), constructor.visibility, + Name.special(""), constructor.visibility.toOldVisibility(), constructor.returnTypeRef.toIrType(), isInline = false, isExternal = false, isPrimary = isPrimary, isExpect = constructor.isExpect ).apply { @@ -533,7 +538,7 @@ class Fir2IrDeclarationStorage( irFactory.createFunction( startOffset, endOffset, origin, symbol, Name.special("<$prefix-${correspondingProperty.name}>"), - propertyAccessor?.visibility ?: correspondingProperty.visibility, + propertyAccessor?.visibility?.toOldVisibility() ?: correspondingProperty.visibility, correspondingProperty.modality, accessorReturnType, isInline = propertyAccessor?.isInline == true, isExternal = propertyAccessor?.isExternal == true, @@ -583,7 +588,7 @@ class Fir2IrDeclarationStorage( property: FirProperty, origin: IrDeclarationOrigin, descriptor: PropertyDescriptor, - visibility: Visibility, + visibility: OldVisibility, name: Name, isFinal: Boolean, firInitializerExpression: FirExpression?, @@ -645,7 +650,7 @@ class Fir2IrDeclarationStorage( val result = declareIrProperty(signature, property.containerSource) { symbol -> irFactory.createProperty( startOffset, endOffset, origin, symbol, - property.name, property.visibility, property.modality!!, + property.name, property.visibility.toOldVisibility(), property.modality!!, isVar = property.isVar, isConst = property.isConst, isLateinit = property.isLateInit, @@ -673,7 +678,7 @@ class Fir2IrDeclarationStorage( ) { backingField = createBackingField( property, IrDeclarationOrigin.PROPERTY_BACKING_FIELD, descriptor, - property.fieldVisibility, property.name, property.isVal, initializer, + property.fieldVisibility.toOldVisibility(), property.name, property.isVal, initializer, type ).also { field -> if (initializer is FirConstExpression<*>) { @@ -685,7 +690,7 @@ class Fir2IrDeclarationStorage( } else if (delegate != null) { backingField = createBackingField( property, IrDeclarationOrigin.PROPERTY_DELEGATE, descriptor, - property.fieldVisibility, Name.identifier("${property.name}\$delegate"), true, delegate + property.fieldVisibility.toOldVisibility(), Name.identifier("${property.name}\$delegate"), true, delegate ) } if (irParent != null) { @@ -765,7 +770,7 @@ class Fir2IrDeclarationStorage( ) { symbol -> irFactory.createField( startOffset, endOffset, origin, symbol, - field.name, type, field.visibility, + field.name, type, field.visibility.toOldVisibility(), isFinal = field.modality == Modality.FINAL, isExternal = false, isStatic = field.isStatic diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrScopeCache.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrScopeCache.kt index 7463c43ebc6..48a74d98a17 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrScopeCache.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrScopeCache.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.fir.backend -import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.declarations.IrValueParameter @@ -42,4 +42,4 @@ class Fir2IrScopeCache { variableCache.clear() localFunctionCache.clear() } -} \ No newline at end of file +} diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index f9fd0012214..61777c542c3 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.backend.generators.ClassMemberGenerator diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt index 74ef3e67a8c..89fb1370a8e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.backend.generators import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.* @@ -23,11 +22,7 @@ import org.jetbrains.kotlin.fir.resolve.inference.isBuiltinFunctionalType import org.jetbrains.kotlin.fir.resolve.inference.isSuspendFunctionType import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope -import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl -import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol +import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.ir.IrStatement @@ -44,6 +39,7 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtPropertyDelegate import org.jetbrains.kotlin.psi2ir.generators.hasNoSideEffects import org.jetbrains.kotlin.utils.SmartList +import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities class CallAndReferenceGenerator( private val components: Fir2IrComponents, @@ -210,7 +206,7 @@ class CallAndReferenceGenerator( IrDeclarationOrigin.ADAPTER_FOR_CALLABLE_REFERENCE, irAdapterSymbol, adaptee.name, - Visibilities.LOCAL, + OldVisibilities.LOCAL, Modality.FINAL, returnType, isInline = firAdaptee.isInline, diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt index 2620473c07f..653ba12e855 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.fir.backend.generators -import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt index a6af54a0f8e..41c7f2ed932 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.fir.backend.generators import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.util.DataClassMembersGenerator import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities /** * A generator that generates synthetic members of data class as well as part of inline class. @@ -236,7 +237,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { val signature = if (classId.isLocal) null else components.signatureComposer.composeSignature(firFunction) return components.declarationStorage.declareIrSimpleFunction(signature, null) { symbol -> components.irFactory.createFunction( - UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, name, Visibilities.PUBLIC, Modality.OPEN, returnType, + UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, name, OldVisibilities.PUBLIC, Modality.OPEN, returnType, isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isOperator = false, isInfix = false, isExpect = false, isFakeOverride = false, ).apply { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt index 34f5ea927e4..730af905232 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt @@ -8,7 +8,8 @@ package org.jetbrains.kotlin.fir.backend.generators import org.jetbrains.kotlin.backend.common.ir.isFinalClass import org.jetbrains.kotlin.backend.common.ir.isOverridable import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.fir.backend.FirMetadataSource import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter @@ -113,7 +114,7 @@ internal class DelegatedMemberGenerator( private fun IrDeclaration.isOverridable(): Boolean { return when (this) { is IrSimpleFunction -> this.isOverridable - is IrProperty -> visibility != Visibilities.PRIVATE && modality != Modality.FINAL && (parent as? IrClass)?.isFinalClass != true + is IrProperty -> visibility != OldVisibilities.PRIVATE && modality != Modality.FINAL && (parent as? IrClass)?.isFinalClass != true else -> false } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt index 54417c78a78..37af31661da 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt @@ -5,10 +5,14 @@ package org.jetbrains.kotlin.fir.lazy -import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter import org.jetbrains.kotlin.fir.backend.toIrType +import org.jetbrains.kotlin.fir.backend.toOldVisibility import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.Fir2IrClassSymbol @@ -23,6 +27,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility class Fir2IrLazyClass( components: Fir2IrComponents, @@ -51,8 +56,8 @@ class Fir2IrLazyClass( override val name: Name get() = fir.name - override var visibility: Visibility - get() = fir.visibility + @Suppress("SetterBackingFieldAssignment") + override var visibility: OldVisibility = fir.visibility.toOldVisibility() set(_) { error("Mutating Fir2Ir lazy elements is not possible") } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt index 3cece785565..8403aad70f3 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt @@ -6,10 +6,10 @@ package org.jetbrains.kotlin.fir.lazy import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter import org.jetbrains.kotlin.fir.backend.toIrType +import org.jetbrains.kotlin.fir.backend.toOldVisibility import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.symbols.Fir2IrConstructorSymbol import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.ir.util.parentClassOrNull import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility class Fir2IrLazyConstructor( components: Fir2IrComponents, @@ -61,8 +62,8 @@ class Fir2IrLazyConstructor( override val name: Name get() = Name.special("") - override var visibility: Visibility - get() = fir.visibility + @Suppress("SetterBackingFieldAssignment") + override var visibility: OldVisibility = fir.visibility.toOldVisibility() set(_) { error("Mutating Fir2Ir lazy elements is not possible") } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt index afe4e662a19..68e192d9667 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt @@ -7,9 +7,9 @@ package org.jetbrains.kotlin.fir.lazy import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.PropertyDescriptor -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.fir.backend.toIrConst +import org.jetbrains.kotlin.fir.backend.toOldVisibility import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.isInterface import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility class Fir2IrLazyProperty( components: Fir2IrComponents, @@ -69,8 +70,8 @@ class Fir2IrLazyProperty( override val name: Name get() = fir.name - override var visibility: Visibility - get() = fir.visibility + @Suppress("SetterBackingFieldAssignment") + override var visibility: OldVisibility = fir.visibility.toOldVisibility() set(_) { error("Mutating Fir2Ir lazy elements is not possible") } @@ -94,7 +95,7 @@ class Fir2IrLazyProperty( with(declarationStorage) { createBackingField( fir, IrDeclarationOrigin.PROPERTY_BACKING_FIELD, descriptor, - fir.fieldVisibility, fir.name, fir.isVal, fir.initializer, + fir.fieldVisibility.toOldVisibility(), fir.name, fir.isVal, fir.initializer, type ).also { field -> val initializer = fir.initializer @@ -110,7 +111,7 @@ class Fir2IrLazyProperty( with(declarationStorage) { createBackingField( fir, IrDeclarationOrigin.PROPERTY_DELEGATE, descriptor, - fir.fieldVisibility, Name.identifier("${fir.name}\$delegate"), true, fir.delegate + fir.fieldVisibility.toOldVisibility(), Name.identifier("${fir.name}\$delegate"), true, fir.delegate ) } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt index 323767098a8..0ddfc44ff40 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt @@ -7,11 +7,7 @@ package org.jetbrains.kotlin.fir.lazy import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.fir.backend.Fir2IrComponents -import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter -import org.jetbrains.kotlin.fir.backend.generateOverriddenFunctionSymbols -import org.jetbrains.kotlin.fir.backend.toIrType +import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.symbols.Fir2IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI @@ -24,6 +20,7 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility class Fir2IrLazySimpleFunction( components: Fir2IrComponents, @@ -74,8 +71,8 @@ class Fir2IrLazySimpleFunction( override val name: Name get() = fir.name - override var visibility: Visibility - get() = fir.visibility + @Suppress("SetterBackingFieldAssignment") + override var visibility: OldVisibility = fir.visibility.toOldVisibility() set(_) { error("Mutating Fir2Ir lazy elements is not possible") } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt index db170470a27..b1287f65911 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt @@ -5,10 +5,11 @@ package org.jetbrains.kotlin.fir.signaturer -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.fir.* +import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.backend.Fir2IrSignatureComposer import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.ir.util.IdSignature diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt index 2f08580b1d4..568cc83ba9c 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt @@ -20,8 +20,8 @@ import com.intellij.util.ArrayUtil import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.firProvider import org.jetbrains.kotlin.fir.resolve.fullyExpandedType diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index 2536bafd274..51c452315bd 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -11,8 +11,6 @@ import com.intellij.psi.PsiElement import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.* @@ -157,7 +155,7 @@ class JavaSymbolProvider( session = this@JavaSymbolProvider.session symbol = firSymbol name = javaClass.name - visibility = javaClass.visibility + visibility = javaClass.visibility.toFirVisibility() modality = javaClass.modality classKind = javaClass.classKind this.isTopLevel = outerClassId == null @@ -174,7 +172,7 @@ class JavaSymbolProvider( } } status = FirResolvedDeclarationStatusImpl( - javaClass.visibility, + javaClass.visibility.toFirVisibility(), javaClass.modality ).apply { this.isInner = !isTopLevel && !this@buildJavaClass.isStatic @@ -197,7 +195,7 @@ class JavaSymbolProvider( symbol = FirVariableSymbol(fieldId) name = fieldName status = FirResolvedDeclarationStatusImpl( - javaField.visibility, + javaField.visibility.toFirVisibility(), javaField.modality ).apply { isStatic = javaField.isStatic @@ -216,7 +214,7 @@ class JavaSymbolProvider( symbol = FirFieldSymbol(fieldId) name = fieldName status = FirResolvedDeclarationStatusImpl( - javaField.visibility, + javaField.visibility.toFirVisibility(), javaField.modality ).apply { isStatic = javaField.isStatic @@ -224,7 +222,7 @@ class JavaSymbolProvider( isActual = false isOverride = false } - visibility = javaField.visibility + visibility = javaField.visibility.toFirVisibility() modality = javaField.modality returnTypeRef = returnType.toFirJavaTypeRef(this@JavaSymbolProvider.session, javaTypeParameterStack) isVar = !javaField.isFinal @@ -248,7 +246,7 @@ class JavaSymbolProvider( source = (javaMethod as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement() symbol = methodSymbol name = methodName - visibility = javaMethod.visibility + visibility = javaMethod.visibility.toFirVisibility() modality = javaMethod.modality returnTypeRef = returnType.toFirJavaTypeRef(this@JavaSymbolProvider.session, javaTypeParameterStack) isStatic = javaMethod.isStatic @@ -260,7 +258,7 @@ class JavaSymbolProvider( ) } status = FirResolvedDeclarationStatusImpl( - javaMethod.visibility, + javaMethod.visibility.toFirVisibility(), javaMethod.modality ).apply { isStatic = javaMethod.isStatic @@ -342,7 +340,7 @@ class JavaSymbolProvider( } for (javaConstructor in javaClassDeclaredConstructors) { declarations += prepareJavaConstructor( - visibility = javaConstructor.visibility, + visibility = javaConstructor.visibility.toFirVisibility(), psi = (javaConstructor as? JavaElementImpl<*>)?.psi, ).apply { this.typeParameters += javaConstructor.typeParameters.convertTypeParameters(javaTypeParameterStack) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt index d08a82a04e4..30eeff4a37c 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.java import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.declarations.* @@ -28,7 +28,6 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol -import org.jetbrains.kotlin.fir.toFirPsiSourceElement import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl @@ -41,6 +40,9 @@ import org.jetbrains.kotlin.load.java.typeEnhancement.TypeComponentPosition import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance.* +import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities +import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility +import org.jetbrains.kotlin.load.java.JavaVisibilities as OldJavaVisibilities internal val JavaModifierListOwner.modality: Modality get() = when { @@ -524,3 +526,17 @@ 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 + else -> error("Unknown visiblity: $this") +} diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt index 85274a8e00f..938b1a0457d 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt @@ -7,10 +7,10 @@ package org.jetbrains.kotlin.fir.java.declarations import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.declarations.* @@ -173,4 +173,4 @@ internal class FirJavaClassBuilder : FirRegularClassBuilder(), FirAnnotationCont internal inline fun buildJavaClass(init: FirJavaClassBuilder.() -> Unit): FirJavaClass { return FirJavaClassBuilder().apply(init).build() -} \ No newline at end of file +} diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt index 2fcd67b8040..9fc39072d83 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt @@ -5,10 +5,10 @@ package org.jetbrains.kotlin.fir.java.declarations -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.FirConstructorBuilder diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt index 679372896ca..a0caf866bd5 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt @@ -6,10 +6,10 @@ package org.jetbrains.kotlin.fir.java.declarations import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.FirFieldBuilder diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt index 4065620518b..6a90111d51f 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt @@ -6,10 +6,10 @@ package org.jetbrains.kotlin.fir.java.declarations import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.declarations.* @@ -110,4 +110,4 @@ class FirJavaMethodBuilder : FirSimpleFunctionBuilder() { inline fun buildJavaMethod(init: FirJavaMethodBuilder.() -> Unit): FirJavaMethod { return FirJavaMethodBuilder().apply(init).build() -} \ No newline at end of file +} diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/JavaVisibilities.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/JavaVisibilities.kt new file mode 100644 index 00000000000..5b389c0b82d --- /dev/null +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/JavaVisibilities.kt @@ -0,0 +1,47 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir + +object JavaVisibilities { + object PACKAGE_VISIBILITY : Visibility("package", isPublicAPI = false) { + override fun compareTo(visibility: Visibility): Int? { + if (this === visibility) return 0 + if (Visibilities.isPrivate(visibility)) return 1 + return -1 + } + + override fun normalize(): Visibility { + return Visibilities.PROTECTED + } + + override val internalDisplayName: String + get() = "public/*package*/" + } + + object PROTECTED_STATIC_VISIBILITY : Visibility("protected_static", isPublicAPI = true) { + override fun normalize(): Visibility { + return Visibilities.PROTECTED + } + + override val internalDisplayName: String + get() = "protected/*protected static*/" + } + + object PROTECTED_AND_PACKAGE : Visibility("protected_and_package", isPublicAPI = true) { + override fun compareTo(visibility: Visibility): Int? { + if (this == visibility) return 0 + if (visibility === Visibilities.INTERNAL) return null + return if (Visibilities.isPrivate(visibility)) 1 else -1 + } + + override fun normalize(): Visibility { + return Visibilities.PROTECTED + } + + override val internalDisplayName: String + get() = "protected/*protected and package*/" + } +} diff --git a/compiler/fir/raw-fir/fir-common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt b/compiler/fir/raw-fir/fir-common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt index fe9bd4a95d9..d86c275f15d 100644 --- a/compiler/fir/raw-fir/fir-common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt +++ b/compiler/fir/raw-fir/fir-common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.builder import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.KtNodeTypes.* import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.* diff --git a/compiler/fir/raw-fir/fir-common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt b/compiler/fir/raw-fir/fir-common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt index c32ddbda652..7646bfc4b8a 100644 --- a/compiler/fir/raw-fir/fir-common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt +++ b/compiler/fir/raw-fir/fir-common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.builder import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.builder.buildRawContractDescription diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt index 07e2458c9ef..49e2abd69f6 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt @@ -11,8 +11,8 @@ import com.intellij.psi.tree.TokenSet import org.jetbrains.kotlin.KtNodeType import org.jetbrains.kotlin.KtNodeTypes.* import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.builder.generateResolvedAccessExpression import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirVariable diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt index 061d452eb82..95ea5034533 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt @@ -11,8 +11,6 @@ import com.intellij.util.diff.FlyweightCapableTreeStructure import org.jetbrains.kotlin.KtNodeTypes.* import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.builder.Context @@ -39,9 +37,7 @@ import org.jetbrains.kotlin.fir.lightTree.fir.modifier.TypeProjectionModifier import org.jetbrains.kotlin.fir.references.builder.buildImplicitThisReference import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference import org.jetbrains.kotlin.fir.references.builder.buildSimpleNamedReference -import org.jetbrains.kotlin.fir.references.impl.FirReferenceForUnresolvedAnnotations import org.jetbrains.kotlin.fir.references.impl.FirReferencePlaceholderForResolvedAnnotations -import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.CallableId diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt index f9d4baee86c..dce0356cb8c 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt @@ -10,7 +10,6 @@ import com.intellij.psi.TokenType import com.intellij.util.diff.FlyweightCapableTreeStructure import org.jetbrains.kotlin.KtNodeTypes.* import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.builder.* import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ClassWrapper.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ClassWrapper.kt index b53d635a56c..78b3a419caa 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ClassWrapper.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ClassWrapper.kt @@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.lightTree.fir import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.lightTree.fir.modifier.Modifier @@ -68,4 +68,4 @@ class ClassWrapper( else -> Visibilities.UNKNOWN } } -} \ No newline at end of file +} diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt index 8a85f4ec419..44d007468c1 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt @@ -7,13 +7,13 @@ package org.jetbrains.kotlin.fir.lightTree.fir.modifier import com.intellij.lang.LighterASTNode import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierSets.CLASS_MODIFIER import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierSets.FUNCTION_MODIFIER -import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierSets.INLINE_MODIFIER import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierSets.INHERITANCE_MODIFIER +import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierSets.INLINE_MODIFIER import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierSets.MEMBER_MODIFIER import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierSets.PARAMETER_MODIFIER import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierSets.PLATFORM_MODIFIER diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiConversionUtils.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiConversionUtils.kt index 6cc4e7261a4..aae602e468f 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiConversionUtils.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiConversionUtils.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.builder import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirVariable diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index 1b4c9bf91f1..acc491a6011 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -9,8 +9,6 @@ import com.intellij.psi.PsiElement import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.declarations.* diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirEffectiveVisibilityImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirEffectiveVisibilityImpl.kt index 68a11b91fde..a10192433e3 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirEffectiveVisibilityImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirEffectiveVisibilityImpl.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.fir -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirEffectiveVisibility.Permissiveness import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirEffectiveVisibilityUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirEffectiveVisibilityUtils.kt index 2db8a8869cb..37c5b2abe35 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirEffectiveVisibilityUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirEffectiveVisibilityUtils.kt @@ -6,8 +6,6 @@ package org.jetbrains.kotlin.fir import org.jetbrains.kotlin.descriptors.RelationToType -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirEffectiveVisibility.Permissiveness import org.jetbrains.kotlin.fir.FirEffectiveVisibilityImpl.* import org.jetbrains.kotlin.fir.declarations.* diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt index 2fd0d2b417e..db2cf7ba610 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.fir -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.scopes.ProcessorAction diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt index fa37c57e8a0..b6926902f04 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInsSettings import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.* @@ -58,7 +57,7 @@ fun deserializeClassToSymbol( val kind = Flags.CLASS_KIND.get(flags) val modality = ProtoEnumFlags.modality(Flags.MODALITY.get(flags)) val status = FirResolvedDeclarationStatusImpl( - ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), + FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), modality ).apply { isExpect = Flags.IS_EXPECT_CLASS.get(flags) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt index 4b0b19ddd18..90f5b14babc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.deserialization import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.* @@ -167,7 +166,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { origin = FirDeclarationOrigin.Library this.name = name status = FirResolvedDeclarationStatusImpl( - ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), + FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), Modality.FINAL ).apply { isExpect = Flags.IS_EXPECT_CLASS.get(flags) @@ -214,7 +213,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { val getter = if (hasGetter) { val getterFlags = if (proto.hasGetterFlags()) proto.getterFlags else defaultAccessorFlags - val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(getterFlags)) + val visibility = FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(getterFlags)) val modality = ProtoEnumFlags.modality(Flags.MODALITY.get(getterFlags)) if (Flags.IS_NOT_DEFAULT.get(getterFlags)) { buildPropertyAccessor { @@ -239,7 +238,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { val setter = if (Flags.HAS_SETTER.get(flags)) { val setterFlags = if (proto.hasSetterFlags()) proto.setterFlags else defaultAccessorFlags - val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(setterFlags)) + val visibility = FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(setterFlags)) val modality = ProtoEnumFlags.modality(Flags.MODALITY.get(setterFlags)) if (Flags.IS_NOT_DEFAULT.get(setterFlags)) { buildPropertyAccessor { @@ -281,7 +280,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { this.symbol = symbol isLocal = false status = FirResolvedDeclarationStatusImpl( - ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), + FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), ProtoEnumFlags.modality(Flags.MODALITY.get(flags)) ).apply { isExpect = Flags.IS_EXPECT_PROPERTY.get(flags) @@ -343,7 +342,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { } name = callableName status = FirResolvedDeclarationStatusImpl( - ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), + FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), ProtoEnumFlags.modality(Flags.MODALITY.get(flags)) ).apply { isExpect = Flags.IS_EXPECT_FUNCTION.get(flags) @@ -408,7 +407,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { session = c.session origin = FirDeclarationOrigin.Library returnTypeRef = delegatedSelfType - val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)) + val visibility = FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)) status = FirResolvedDeclarationStatusImpl( visibility, Modality.FINAL diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirProtoEnumFlags.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirProtoEnumFlags.kt new file mode 100644 index 00000000000..8328d4bc894 --- /dev/null +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirProtoEnumFlags.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.deserialization + +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility +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 + } + + 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 + else -> throw IllegalArgumentException("Unknown visibility: $visibility") + } +} diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirStatusTransfomerExtension.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirStatusTransfomerExtension.kt index 716a1564c5e..62120b4dd32 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirStatusTransfomerExtension.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirStatusTransfomerExtension.kt @@ -6,8 +6,8 @@ package org.jetbrains.kotlin.fir.extensions import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus @@ -55,4 +55,4 @@ inline fun FirDeclarationStatus.transform( isFromSealedClass = this@transform.isFromSealedClass isFromEnumClass = this@transform.isFromEnumClass }.apply(init) -} \ No newline at end of file +} diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt index 4404bc9a0bb..1b1ad9e023c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt @@ -5,8 +5,8 @@ package org.jetbrains.kotlin.fir.resolve.calls -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt index 5a9905f2cc0..27009f300a8 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.SourceElement -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildRegularClass diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCloneableSymbolProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCloneableSymbolProvider.kt index f508f2d3f1e..6f1dc5e1915 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCloneableSymbolProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCloneableSymbolProvider.kt @@ -8,8 +8,8 @@ package org.jetbrains.kotlin.fir.resolve.providers.impl import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.builder.buildRegularClass diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt index d6851bfe7c9..e0fe8e785cf 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt @@ -7,9 +7,9 @@ package org.jetbrains.kotlin.fir.resolve.transformers import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.fir.* +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl import org.jetbrains.kotlin.fir.expressions.FirBlock diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt index d9753b6e4fc..504b5ab7169 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt @@ -6,8 +6,8 @@ package org.jetbrains.kotlin.fir.resolve.transformers import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder import org.jetbrains.kotlin.fir.declarations.builder.buildTypeParameter @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.buildArgumentList import org.jetbrains.kotlin.fir.expressions.builder.buildFunctionCall -import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.builder.buildErrorNamedReference import org.jetbrains.kotlin.fir.references.impl.FirStubReference @@ -30,6 +29,7 @@ import org.jetbrains.kotlin.fir.symbols.SyntheticCallableId import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildTypeProjectionWithVariance diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt index 0ead7b8db28..718b0da3958 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.fir.scopes.impl -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.* diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerLiteralTypeScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerLiteralTypeScope.kt index 138b06d9c73..c7e165bc7db 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerLiteralTypeScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerLiteralTypeScope.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.scopes.impl import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt index bac947e05d7..35fce797ab7 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt @@ -5,8 +5,8 @@ package org.jetbrains.kotlin.fir.scopes.impl -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirProperty diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt index a35b1d7bb82..590fb024983 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt @@ -6,9 +6,9 @@ package org.jetbrains.kotlin.fir.declarations import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.visitors.* /* diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedDeclarationStatus.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedDeclarationStatus.kt index 35137944cfb..2bf5d743762 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedDeclarationStatus.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedDeclarationStatus.kt @@ -6,8 +6,8 @@ package org.jetbrains.kotlin.fir.declarations import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.visitors.* /* diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/EnumClassUtils.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/EnumClassUtils.kt index c8ed8e6b21d..62df8864df0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/EnumClassUtils.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/EnumClassUtils.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.builder.FirRegularClassBuilder diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirEffectiveVisibility.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirEffectiveVisibility.kt index 3a786f14f69..08fc6fa8b66 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirEffectiveVisibility.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirEffectiveVisibility.kt @@ -5,8 +5,6 @@ package org.jetbrains.kotlin.fir -import org.jetbrains.kotlin.descriptors.Visibility - interface FirEffectiveVisibility { val name: String diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index 3ab0eed6d21..56efd3a2291 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -7,8 +7,6 @@ package org.jetbrains.kotlin.fir import org.jetbrains.kotlin.builtins.functions.BuiltInFictitiousFunctionClassFactory import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirRawContractDescription diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt index a9b2fd1de1e..36f23cad1bf 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.fir.declarations import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.builder.FirRegularClassBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDeclarationStatusImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDeclarationStatusImpl.kt index a3a63cdfe01..3a7c614fc28 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDeclarationStatusImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDeclarationStatusImpl.kt @@ -6,10 +6,9 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.fir.FirEffectiveVisibility import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl.Modifier.* import org.jetbrains.kotlin.fir.visitors.FirTransformer @@ -170,4 +169,4 @@ open class FirDeclarationStatusImpl( fun resolved(visibility: Visibility, modality: Modality): FirDeclarationStatus { return FirResolvedDeclarationStatusImpl(visibility, modality, flags) } -} \ No newline at end of file +} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt index 1a69f33a520..9d12f739198 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt @@ -6,10 +6,10 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirResolvePhase @@ -115,4 +115,4 @@ class FirDefaultPropertySetter( isGetter = false, visibility, symbol -) \ No newline at end of file +) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedDeclarationStatusImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedDeclarationStatusImpl.kt index fb02372089d..fe2509f3653 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedDeclarationStatusImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedDeclarationStatusImpl.kt @@ -6,8 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.fir.FirEffectiveVisibility +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus class FirResolvedDeclarationStatusImpl( @@ -28,4 +27,4 @@ class FirResolvedDeclarationStatusImpl( override val modality: Modality get() = super.modality!! -} \ No newline at end of file +} diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt index ef58046060f..995b2d70d51 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt @@ -8,9 +8,9 @@ package org.jetbrains.kotlin.fir.tree.generator import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.tree.generator.context.generatedType import org.jetbrains.kotlin.fir.tree.generator.context.type import org.jetbrains.kotlin.fir.types.ConeClassErrorType @@ -83,4 +83,4 @@ val dslBuilderAnnotationType = generatedType("builder", "FirBuilderDsl") val firImplementationDetailType = generatedType("FirImplementationDetail") val declarationOriginType = generatedType("declarations", "FirDeclarationOrigin") val declarationAttributesType = generatedType("declarations", "FirDeclarationAttributes") -val annotationResolveStatusType = generatedType("expressions", "FirAnnotationResolveStatus") \ No newline at end of file +val annotationResolveStatusType = generatedType("expressions", "FirAnnotationResolveStatus") diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/model/Implementation.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/model/Implementation.kt index e26fd051412..08408b95a62 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/model/Implementation.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/model/Implementation.kt @@ -5,10 +5,6 @@ package org.jetbrains.kotlin.fir.tree.generator.model -import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility - class ImplementationWithArg( val implementation: Implementation, val argument: Importable? @@ -85,4 +81,4 @@ class Implementation(val element: Element, val name: String?) : FieldContainer, AbstractClass("abstract class", false), Object("object", false) } -} \ No newline at end of file +} diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenVisibilityTransformer.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenVisibilityTransformer.kt index 628073f1e55..d058d0904ea 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenVisibilityTransformer.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenVisibilityTransformer.kt @@ -5,9 +5,9 @@ package org.jetbrains.kotlin.fir.plugin -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus @@ -75,4 +75,4 @@ class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerEx override val key: FirPluginKey get() = AllOpenPluginKey -} \ No newline at end of file +} diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenNestedClassGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenNestedClassGenerator.kt index 522947bc239..69fee0a6afe 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenNestedClassGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenNestedClassGenerator.kt @@ -7,9 +7,8 @@ package org.jetbrains.kotlin.fir.plugin.generators import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.fir.FirEffectiveVisibilityImpl import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildConstructor import org.jetbrains.kotlin.fir.declarations.builder.buildRegularClass @@ -98,4 +97,4 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio override val key: FirPluginKey get() = AllOpenPluginKey -} \ No newline at end of file +} diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenRecursiveNestedClassGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenRecursiveNestedClassGenerator.kt index a40960c1671..dcefef65912 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenRecursiveNestedClassGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenRecursiveNestedClassGenerator.kt @@ -7,9 +7,8 @@ package org.jetbrains.kotlin.fir.plugin.generators import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.fir.FirEffectiveVisibilityImpl import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildRegularClass import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl @@ -82,4 +81,4 @@ class AllOpenRecursiveNestedClassGenerator(session: FirSession) : FirDeclaration } private object Key : FirPluginKey() -} \ No newline at end of file +} diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenTopLevelDeclarationsGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenTopLevelDeclarationsGenerator.kt index eaa7cea1e5a..20c6c39eb0c 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenTopLevelDeclarationsGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenTopLevelDeclarationsGenerator.kt @@ -7,9 +7,8 @@ package org.jetbrains.kotlin.fir.plugin.generators import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.fir.FirEffectiveVisibilityImpl import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.Visibilities import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildRegularClass import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction @@ -79,4 +78,4 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration get() = has("A".fqn()) private object Key : FirPluginKey() -} \ No newline at end of file +}