[FIR] Introduce new Visibility class which not depends on descriptors

This commit is contained in:
Dmitriy Novozhilov
2020-08-14 18:37:19 +03:00
parent 9d9f9c52c0
commit 43821b681c
70 changed files with 347 additions and 176 deletions
@@ -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
@@ -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)) }
}
}
}
@@ -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)) }
}
}
}
@@ -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
@@ -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<Visibility, Int> = 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
}
@@ -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
}
@@ -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
@@ -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,
@@ -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
@@ -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 <T : IrElement> 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")
}
@@ -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)
@@ -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("<init>"), constructor.visibility,
Name.special("<init>"), 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
@@ -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()
}
}
}
@@ -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
@@ -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,
@@ -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
@@ -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 {
@@ -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
}
}
@@ -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")
}
@@ -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("<init>")
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")
}
@@ -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
)
}
}
@@ -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")
}
@@ -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
@@ -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
@@ -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)
@@ -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")
}
@@ -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()
}
}
@@ -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
@@ -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
@@ -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()
}
}
@@ -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*/"
}
}
@@ -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.*
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
}
}
}
}
@@ -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
@@ -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
@@ -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.*
@@ -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
@@ -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.*
@@ -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
@@ -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)
@@ -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
@@ -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")
}
}
@@ -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)
}
}
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.*
@@ -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
@@ -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
@@ -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.*
/*
@@ -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.*
/*
@@ -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
@@ -5,8 +5,6 @@
package org.jetbrains.kotlin.fir
import org.jetbrains.kotlin.descriptors.Visibility
interface FirEffectiveVisibility {
val name: String
@@ -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
@@ -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
@@ -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)
}
}
}
@@ -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
)
)
@@ -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!!
}
}
@@ -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")
val annotationResolveStatusType = generatedType("expressions", "FirAnnotationResolveStatus")
@@ -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)
}
}
}
@@ -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
}
}
@@ -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
}
}
@@ -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()
}
}
@@ -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()
}
}