[Commonizer] Replace DescriptorVisibilit[y,ies] by Visibilit[y,ies]
This commit is contained in:
+2
-2
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||
import kotlinx.metadata.*
|
||||
import kotlinx.metadata.klib.KlibModuleMetadata
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
|
||||
/**
|
||||
* An intermediate representation of declarations for commonization purposes.
|
||||
@@ -34,7 +34,7 @@ interface CirHasName {
|
||||
}
|
||||
|
||||
interface CirHasVisibility {
|
||||
val visibility: DescriptorVisibility
|
||||
val visibility: Visibility
|
||||
}
|
||||
|
||||
interface CirHasModality {
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
|
||||
interface CirFunctionOrProperty :
|
||||
CirDeclaration,
|
||||
@@ -24,7 +24,7 @@ interface CirFunctionOrProperty :
|
||||
val kind: CallableMemberDescriptor.Kind
|
||||
|
||||
fun isVirtual(): Boolean =
|
||||
visibility != DescriptorVisibilities.PRIVATE
|
||||
visibility != Visibilities.Private
|
||||
&& modality != Modality.FINAL
|
||||
&& !(containingClass?.modality == Modality.FINAL && containingClass?.kind != ClassKind.ENUM_CLASS)
|
||||
}
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.factory
|
||||
import kotlinx.metadata.Flag
|
||||
import kotlinx.metadata.KmConstructor
|
||||
import kotlinx.metadata.klib.annotations
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirClassConstructorImpl
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeVisibility
|
||||
@@ -31,7 +31,7 @@ object CirClassConstructorFactory {
|
||||
inline fun create(
|
||||
annotations: List<CirAnnotation>,
|
||||
typeParameters: List<CirTypeParameter>,
|
||||
visibility: DescriptorVisibility,
|
||||
visibility: Visibility,
|
||||
containingClass: CirContainingClass,
|
||||
valueParameters: List<CirValueParameter>,
|
||||
hasStableParameterNames: Boolean,
|
||||
|
||||
+4
-4
@@ -10,9 +10,9 @@ import kotlinx.metadata.KmAnnotation
|
||||
import kotlinx.metadata.KmClass
|
||||
import kotlinx.metadata.klib.annotations
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirClassImpl
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeClassKind
|
||||
@@ -49,7 +49,7 @@ object CirClassFactory {
|
||||
annotations = annotations.compactMap { CirAnnotationFactory.create(it, typeResolver) },
|
||||
name = name,
|
||||
typeParameters = emptyList(),
|
||||
visibility = DescriptorVisibilities.PUBLIC,
|
||||
visibility = Visibilities.Public,
|
||||
modality = Modality.FINAL,
|
||||
kind = ClassKind.ENUM_ENTRY,
|
||||
companion = null,
|
||||
@@ -74,7 +74,7 @@ object CirClassFactory {
|
||||
annotations: List<CirAnnotation>,
|
||||
name: CirName,
|
||||
typeParameters: List<CirTypeParameter>,
|
||||
visibility: DescriptorVisibility,
|
||||
visibility: Visibility,
|
||||
modality: Modality,
|
||||
kind: ClassKind,
|
||||
companion: CirName?,
|
||||
|
||||
+2
-2
@@ -9,8 +9,8 @@ import kotlinx.metadata.Flag
|
||||
import kotlinx.metadata.KmFunction
|
||||
import kotlinx.metadata.klib.annotations
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirFunctionImpl
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeCallableKind
|
||||
@@ -41,7 +41,7 @@ object CirFunctionFactory {
|
||||
annotations: List<CirAnnotation>,
|
||||
name: CirName,
|
||||
typeParameters: List<CirTypeParameter>,
|
||||
visibility: DescriptorVisibility,
|
||||
visibility: Visibility,
|
||||
modality: Modality,
|
||||
containingClass: CirContainingClass?,
|
||||
valueParameters: List<CirValueParameter>,
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ import kotlinx.metadata.KmProperty
|
||||
import kotlinx.metadata.klib.annotations
|
||||
import kotlinx.metadata.klib.compileTimeValue
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirPropertyImpl
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeCallableKind
|
||||
@@ -56,7 +56,7 @@ object CirPropertyFactory {
|
||||
annotations: List<CirAnnotation>,
|
||||
name: CirName,
|
||||
typeParameters: List<CirTypeParameter>,
|
||||
visibility: DescriptorVisibility,
|
||||
visibility: Visibility,
|
||||
modality: Modality,
|
||||
containingClass: CirContainingClass?,
|
||||
isExternal: Boolean,
|
||||
|
||||
+5
-5
@@ -9,8 +9,8 @@ import kotlinx.metadata.Flag
|
||||
import kotlinx.metadata.KmProperty
|
||||
import kotlinx.metadata.klib.annotations
|
||||
import kotlinx.metadata.klib.setterAnnotations
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirAnnotation
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirPropertySetter
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirPropertySetterImpl
|
||||
@@ -41,7 +41,7 @@ object CirPropertySetterFactory {
|
||||
fun create(
|
||||
annotations: List<CirAnnotation>,
|
||||
parameterAnnotations: List<CirAnnotation>,
|
||||
visibility: DescriptorVisibility,
|
||||
visibility: Visibility,
|
||||
isDefault: Boolean,
|
||||
isExternal: Boolean,
|
||||
isInline: Boolean
|
||||
@@ -59,11 +59,11 @@ object CirPropertySetterFactory {
|
||||
}
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun createDefaultNoAnnotations(visibility: DescriptorVisibility): CirPropertySetter = create(
|
||||
inline fun createDefaultNoAnnotations(visibility: Visibility): CirPropertySetter = create(
|
||||
annotations = emptyList(),
|
||||
parameterAnnotations = emptyList(),
|
||||
visibility = visibility,
|
||||
isDefault = visibility == DescriptorVisibilities.PUBLIC,
|
||||
isDefault = visibility == Visibilities.Public,
|
||||
isExternal = false,
|
||||
isInline = false
|
||||
)
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.cir.factory
|
||||
|
||||
import kotlinx.metadata.KmTypeAlias
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirTypeAliasImpl
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeVisibility
|
||||
@@ -32,7 +32,7 @@ object CirTypeAliasFactory {
|
||||
annotations: List<CirAnnotation>,
|
||||
name: CirName,
|
||||
typeParameters: List<CirTypeParameter>,
|
||||
visibility: DescriptorVisibility,
|
||||
visibility: Visibility,
|
||||
underlyingType: CirClassOrTypeAliasType,
|
||||
expandedType: CirClassType
|
||||
): CirTypeAlias {
|
||||
|
||||
+4
-4
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.factory
|
||||
|
||||
import gnu.trove.TIntObjectHashMap
|
||||
import kotlinx.metadata.*
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirClassTypeImpl
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirTypeAliasTypeImpl
|
||||
@@ -24,7 +24,7 @@ object CirTypeFactory {
|
||||
val ANY: CirClassType = createClassType(
|
||||
classId = ANY_CLASS_ID,
|
||||
outerType = null,
|
||||
visibility = DescriptorVisibilities.PUBLIC,
|
||||
visibility = Visibilities.Public,
|
||||
arguments = emptyList(),
|
||||
isMarkedNullable = false
|
||||
)
|
||||
@@ -87,7 +87,7 @@ object CirTypeFactory {
|
||||
fun createClassType(
|
||||
classId: CirEntityId,
|
||||
outerType: CirClassType?,
|
||||
visibility: DescriptorVisibility,
|
||||
visibility: Visibility,
|
||||
arguments: List<CirTypeProjection>,
|
||||
isMarkedNullable: Boolean
|
||||
): CirClassType {
|
||||
|
||||
+2
-2
@@ -5,13 +5,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.cir.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
|
||||
data class CirClassConstructorImpl(
|
||||
override val annotations: List<CirAnnotation>,
|
||||
override val typeParameters: List<CirTypeParameter>,
|
||||
override val visibility: DescriptorVisibility,
|
||||
override val visibility: Visibility,
|
||||
override val containingClass: CirContainingClass,
|
||||
override var valueParameters: List<CirValueParameter>,
|
||||
override var hasStableParameterNames: Boolean,
|
||||
|
||||
+2
-2
@@ -7,14 +7,14 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
|
||||
data class CirClassImpl(
|
||||
override val annotations: List<CirAnnotation>,
|
||||
override val name: CirName,
|
||||
override val typeParameters: List<CirTypeParameter>,
|
||||
override val visibility: DescriptorVisibility,
|
||||
override val visibility: Visibility,
|
||||
override val modality: Modality,
|
||||
override val kind: ClassKind,
|
||||
override var companion: CirName?,
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.cir.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirClassType
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirEntityId
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeProjection
|
||||
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.hashCode
|
||||
data class CirClassTypeImpl(
|
||||
override val classifierId: CirEntityId,
|
||||
override val outerType: CirClassType?,
|
||||
override val visibility: DescriptorVisibility, // visibility of the class descriptor
|
||||
override val visibility: Visibility, // visibility of the class descriptor
|
||||
override val arguments: List<CirTypeProjection>,
|
||||
override val isMarkedNullable: Boolean,
|
||||
) : CirClassType() {
|
||||
|
||||
+2
-2
@@ -7,14 +7,14 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
|
||||
data class CirFunctionImpl(
|
||||
override val annotations: List<CirAnnotation>,
|
||||
override val name: CirName,
|
||||
override val typeParameters: List<CirTypeParameter>,
|
||||
override val visibility: DescriptorVisibility,
|
||||
override val visibility: Visibility,
|
||||
override val modality: Modality,
|
||||
override val containingClass: CirContainingClass?,
|
||||
override var valueParameters: List<CirValueParameter>,
|
||||
|
||||
+2
-2
@@ -7,14 +7,14 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
|
||||
data class CirPropertyImpl(
|
||||
override val annotations: List<CirAnnotation>,
|
||||
override val name: CirName,
|
||||
override val typeParameters: List<CirTypeParameter>,
|
||||
override val visibility: DescriptorVisibility,
|
||||
override val visibility: Visibility,
|
||||
override val modality: Modality,
|
||||
override val containingClass: CirContainingClass?,
|
||||
override val isExternal: Boolean,
|
||||
|
||||
+2
-2
@@ -5,14 +5,14 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.cir.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirAnnotation
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirPropertySetter
|
||||
|
||||
data class CirPropertySetterImpl(
|
||||
override val annotations: List<CirAnnotation>,
|
||||
override val parameterAnnotations: List<CirAnnotation>,
|
||||
override val visibility: DescriptorVisibility,
|
||||
override val visibility: Visibility,
|
||||
override val isDefault: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
override val isInline: Boolean
|
||||
|
||||
+2
-2
@@ -5,14 +5,14 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.cir.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
|
||||
data class CirTypeAliasImpl(
|
||||
override val annotations: List<CirAnnotation>,
|
||||
override val name: CirName,
|
||||
override val typeParameters: List<CirTypeParameter>,
|
||||
override val visibility: DescriptorVisibility,
|
||||
override val visibility: Visibility,
|
||||
override val underlyingType: CirClassOrTypeAliasType,
|
||||
override val expandedType: CirClassType // only for commonization algorithm; does not participate in building resulting declarations
|
||||
) : CirTypeAlias {
|
||||
|
||||
+5
-3
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirAnnotation
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirConstantValue
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirConstantValue.*
|
||||
@@ -14,7 +14,9 @@ import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirAnnotationFactory
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirTypeFactory
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.core.AnnotationsCommonizer.Companion.FALLBACK_MESSAGE
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.DEPRECATED_ANNOTATION_CLASS_ID
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMapOf
|
||||
import kotlin.DeprecationLevel.WARNING
|
||||
|
||||
/**
|
||||
@@ -156,7 +158,7 @@ private class DeprecatedAnnotationCommonizer : Commonizer<CirAnnotation, CirAnno
|
||||
private fun buildAnnotationType(classId: CirEntityId) = CirTypeFactory.createClassType(
|
||||
classId = classId,
|
||||
outerType = null,
|
||||
visibility = DescriptorVisibilities.PUBLIC,
|
||||
visibility = Visibilities.Public,
|
||||
arguments = emptyList(),
|
||||
isMarkedNullable = false
|
||||
)
|
||||
|
||||
+2
-2
@@ -5,12 +5,12 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirHasVisibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirPropertySetter
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirPropertySetterFactory
|
||||
|
||||
class PropertySetterCommonizer : AbstractNullableCommonizer<CirPropertySetter, CirPropertySetter, CirHasVisibility, DescriptorVisibility>(
|
||||
class PropertySetterCommonizer : AbstractNullableCommonizer<CirPropertySetter, CirPropertySetter, CirHasVisibility, Visibility>(
|
||||
wrappedCommonizerFactory = { VisibilityCommonizer.equalizing() },
|
||||
extractor = { it },
|
||||
builder = CirPropertySetterFactory::createDefaultNoAnnotations
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirTypeFactory
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.core.CommonizedTypeAliasAnswer.Companion.FAILURE_MISSING_IN_SOME_TARGET
|
||||
@@ -39,7 +39,7 @@ class TypeCommonizer(private val classifiers: CirKnownClassifiers) : AbstractSta
|
||||
private class ClassTypeCommonizer(private val classifiers: CirKnownClassifiers) : AbstractStandardCommonizer<CirClassType, CirClassType>() {
|
||||
private lateinit var classId: CirEntityId
|
||||
private val outerType = OuterClassTypeCommonizer(classifiers)
|
||||
private lateinit var anyVisibility: DescriptorVisibility
|
||||
private lateinit var anyVisibility: Visibility
|
||||
private val arguments = TypeArgumentListCommonizer(classifiers)
|
||||
private var isMarkedNullable = false
|
||||
|
||||
|
||||
+18
-18
@@ -5,40 +5,40 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirFunctionOrProperty
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirHasVisibility
|
||||
|
||||
abstract class VisibilityCommonizer : Commonizer<CirHasVisibility, DescriptorVisibility> {
|
||||
abstract class VisibilityCommonizer : Commonizer<CirHasVisibility, Visibility> {
|
||||
|
||||
companion object {
|
||||
fun lowering(): VisibilityCommonizer = LoweringVisibilityCommonizer()
|
||||
fun equalizing(): VisibilityCommonizer = EqualizingVisibilityCommonizer()
|
||||
}
|
||||
|
||||
private var temp: DescriptorVisibility? = null
|
||||
private var temp: Visibility? = null
|
||||
|
||||
override val result: DescriptorVisibility
|
||||
get() = checkState(temp, temp == DescriptorVisibilities.UNKNOWN)
|
||||
override val result: Visibility
|
||||
get() = checkState(temp, temp == Visibilities.Unknown)
|
||||
|
||||
override fun commonizeWith(next: CirHasVisibility): Boolean {
|
||||
if (temp == DescriptorVisibilities.UNKNOWN)
|
||||
if (temp == Visibilities.Unknown)
|
||||
return false
|
||||
|
||||
val nextVisibility = next.visibility
|
||||
if (DescriptorVisibilities.isPrivate(nextVisibility) || !canBeCommonized(next)) {
|
||||
temp = DescriptorVisibilities.UNKNOWN
|
||||
if (Visibilities.isPrivate(nextVisibility) || !canBeCommonized(next)) {
|
||||
temp = Visibilities.Unknown
|
||||
return false
|
||||
}
|
||||
|
||||
temp = temp?.let { temp -> getNext(temp, nextVisibility) } ?: nextVisibility
|
||||
|
||||
return temp != DescriptorVisibilities.UNKNOWN
|
||||
return temp != Visibilities.Unknown
|
||||
}
|
||||
|
||||
protected abstract fun canBeCommonized(next: CirHasVisibility): Boolean
|
||||
protected abstract fun getNext(current: DescriptorVisibility, next: DescriptorVisibility): DescriptorVisibility
|
||||
protected abstract fun getNext(current: Visibility, next: Visibility): Visibility
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -56,26 +56,26 @@ private class LoweringVisibilityCommonizer : VisibilityCommonizer() {
|
||||
return !atLeastOneVirtualCallableMet || !atLeastTwoVisibilitiesMet
|
||||
}
|
||||
|
||||
override fun getNext(current: DescriptorVisibility, next: DescriptorVisibility): DescriptorVisibility {
|
||||
val comparisonResult: Int = DescriptorVisibilities.compare(current, next)
|
||||
?: return DescriptorVisibilities.UNKNOWN // two visibilities that can't be compared against each one, ex: protected vs internal
|
||||
override fun getNext(current: Visibility, next: Visibility): Visibility {
|
||||
val comparisonResult: Int = Visibilities.compare(current, next)
|
||||
?: return Visibilities.Unknown // two visibilities that can't be compared against each one, ex: protected vs internal
|
||||
|
||||
if (!atLeastTwoVisibilitiesMet)
|
||||
atLeastTwoVisibilitiesMet = comparisonResult != 0
|
||||
|
||||
if (atLeastOneVirtualCallableMet && atLeastTwoVisibilitiesMet)
|
||||
return DescriptorVisibilities.UNKNOWN
|
||||
return Visibilities.Unknown
|
||||
|
||||
return if (comparisonResult <= 0) current else next
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Make sure that visibilities of all member descriptors are equal and are not private according to [DescriptorVisibilities.isPrivate].
|
||||
* Make sure that visibilities of all member descriptors are equal and are not private according to [Visibilities.isPrivate].
|
||||
*/
|
||||
private class EqualizingVisibilityCommonizer : VisibilityCommonizer() {
|
||||
override fun canBeCommonized(next: CirHasVisibility) = true
|
||||
|
||||
override fun getNext(current: DescriptorVisibility, next: DescriptorVisibility) =
|
||||
if (DescriptorVisibilities.compare(current, next) == 0) current else DescriptorVisibilities.UNKNOWN
|
||||
override fun getNext(current: Visibility, next: Visibility) =
|
||||
if (Visibilities.compare(current, next) == 0) current else Visibilities.Unknown
|
||||
}
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
||||
|
||||
import gnu.trove.THashMap
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirEntityId
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirPackageName
|
||||
@@ -39,7 +39,7 @@ object CirFictitiousFunctionClassifiers : CirProvidedClassifiers {
|
||||
}
|
||||
|
||||
val classId = CirEntityId.create(PACKAGE_NAME, CirName.create("$prefix$arity"))
|
||||
val clazz = CirProvided.Class(typeParameters, DescriptorVisibilities.PUBLIC)
|
||||
val clazz = CirProvided.Class(typeParameters, Visibilities.Public)
|
||||
|
||||
consumer(classId, clazz)
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirEntityId
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
@@ -61,7 +61,7 @@ object CirProvided {
|
||||
|
||||
data class Class(
|
||||
override val typeParameters: List<TypeParameter>,
|
||||
val visibility: DescriptorVisibility
|
||||
val visibility: Visibility
|
||||
) : Classifier
|
||||
|
||||
data class TypeAlias(
|
||||
|
||||
+3
-4
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
||||
|
||||
import com.intellij.util.containers.FactoryMap
|
||||
import gnu.trove.THashMap
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirEntityId
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName
|
||||
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.library.metadata.parsePackageFragment
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.deserialization.*
|
||||
import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptorVisibility
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
internal class CirProvidedClassifiersByModules private constructor(
|
||||
@@ -63,7 +62,7 @@ internal class CirProvidedClassifiersByModules private constructor(
|
||||
return CirProvidedClassifiersByModules(hasForwardDeclarations, classifiers)
|
||||
}
|
||||
|
||||
private val FALLBACK_FORWARD_DECLARATION_CLASS = CirProvided.Class(emptyList(), DescriptorVisibilities.PUBLIC)
|
||||
private val FALLBACK_FORWARD_DECLARATION_CLASS = CirProvided.Class(emptyList(), Visibilities.Public)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,7 +136,7 @@ private fun readClass(
|
||||
typeParameterProtos = classProto.typeParameterList,
|
||||
typeParameterIndexOffset = typeParameterIndexOffset
|
||||
)
|
||||
val visibility = ProtoEnumFlags.descriptorVisibility(Flags.VISIBILITY.get(classProto.flags))
|
||||
val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(classProto.flags))
|
||||
val clazz = CirProvided.Class(typeParameters, visibility)
|
||||
|
||||
consumer(classId, clazz)
|
||||
|
||||
@@ -99,12 +99,12 @@ internal fun CirTypeAlias.typeAliasFlags(): Flags =
|
||||
)
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
internal inline fun decodeVisibility(flags: Flags): DescriptorVisibility =
|
||||
internal inline fun decodeVisibility(flags: Flags): Visibility =
|
||||
when {
|
||||
Flag.Common.IS_PUBLIC(flags) -> DescriptorVisibilities.PUBLIC
|
||||
Flag.Common.IS_PROTECTED(flags) -> DescriptorVisibilities.PROTECTED
|
||||
Flag.Common.IS_INTERNAL(flags) -> DescriptorVisibilities.INTERNAL
|
||||
Flag.Common.IS_PRIVATE(flags) -> DescriptorVisibilities.PRIVATE
|
||||
Flag.Common.IS_PUBLIC(flags) -> Visibilities.Public
|
||||
Flag.Common.IS_PROTECTED(flags) -> Visibilities.Protected
|
||||
Flag.Common.IS_INTERNAL(flags) -> Visibilities.Internal
|
||||
Flag.Common.IS_PRIVATE(flags) -> Visibilities.Private
|
||||
else -> error("Can't decode visibility from flags: $flags")
|
||||
}
|
||||
|
||||
@@ -156,10 +156,10 @@ private inline val CirProperty.hasAnnotationsFlag: Flag?
|
||||
|
||||
private inline val CirHasVisibility.visibilityFlag: Flag
|
||||
get() = when (visibility) {
|
||||
DescriptorVisibilities.PUBLIC -> Flag.Common.IS_PUBLIC
|
||||
DescriptorVisibilities.PROTECTED -> Flag.Common.IS_PROTECTED
|
||||
DescriptorVisibilities.INTERNAL -> Flag.Common.IS_INTERNAL
|
||||
DescriptorVisibilities.PRIVATE -> Flag.Common.IS_PRIVATE
|
||||
Visibilities.Public -> Flag.Common.IS_PUBLIC
|
||||
Visibilities.Protected -> Flag.Common.IS_PROTECTED
|
||||
Visibilities.Internal -> Flag.Common.IS_INTERNAL
|
||||
Visibilities.Private -> Flag.Common.IS_PRIVATE
|
||||
else -> error("Unexpected visibility: $this")
|
||||
}
|
||||
|
||||
|
||||
+21
-17
@@ -5,64 +5,68 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities.*
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Internal
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Local
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Private
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Protected
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Public
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirHasVisibility
|
||||
import org.junit.Test
|
||||
|
||||
class EqualizingVisibilityCommonizerTest : AbstractCommonizerTest<CirHasVisibility, DescriptorVisibility>() {
|
||||
class EqualizingVisibilityCommonizerTest : AbstractCommonizerTest<CirHasVisibility, Visibility>() {
|
||||
|
||||
@Test
|
||||
fun publicOnly() = doTestSuccess(
|
||||
expected = PUBLIC,
|
||||
PUBLIC.toMock(), PUBLIC.toMock(), PUBLIC.toMock()
|
||||
expected = Public,
|
||||
Public.toMock(), Public.toMock(), Public.toMock()
|
||||
)
|
||||
|
||||
@Test
|
||||
fun protectedOnly() = doTestSuccess(
|
||||
expected = PROTECTED,
|
||||
PROTECTED.toMock(), PROTECTED.toMock(), PROTECTED.toMock()
|
||||
expected = Protected,
|
||||
Protected.toMock(), Protected.toMock(), Protected.toMock()
|
||||
)
|
||||
|
||||
@Test
|
||||
fun internalOnly() = doTestSuccess(
|
||||
expected = INTERNAL,
|
||||
INTERNAL.toMock(), INTERNAL.toMock(), INTERNAL.toMock()
|
||||
expected = Internal,
|
||||
Internal.toMock(), Internal.toMock(), Internal.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun privateOnly() = doTestFailure(
|
||||
PRIVATE.toMock()
|
||||
Private.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndProtected() = doTestFailure(
|
||||
PROTECTED.toMock(), PROTECTED.toMock(), PUBLIC.toMock()
|
||||
Protected.toMock(), Protected.toMock(), Public.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndInternal() = doTestFailure(
|
||||
INTERNAL.toMock(), INTERNAL.toMock(), PUBLIC.toMock()
|
||||
Internal.toMock(), Internal.toMock(), Public.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun protectedAndInternal() = doTestFailure(
|
||||
PROTECTED.toMock(), PROTECTED.toMock(), INTERNAL.toMock()
|
||||
Protected.toMock(), Protected.toMock(), Internal.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndPrivate() = doTestFailure(
|
||||
PUBLIC.toMock(), PUBLIC.toMock(), PRIVATE.toMock()
|
||||
Public.toMock(), Public.toMock(), Private.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun somethingUnexpected() = doTestFailure(
|
||||
PUBLIC.toMock(), LOCAL.toMock()
|
||||
Public.toMock(), Local.toMock()
|
||||
)
|
||||
|
||||
override fun createCommonizer() = VisibilityCommonizer.equalizing()
|
||||
}
|
||||
|
||||
private fun DescriptorVisibility.toMock() = object : CirHasVisibility {
|
||||
override val visibility: DescriptorVisibility = this@toMock
|
||||
private fun Visibility.toMock() = object : CirHasVisibility {
|
||||
override val visibility: Visibility = this@toMock
|
||||
}
|
||||
|
||||
+30
-26
@@ -7,8 +7,12 @@ package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities.*
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Internal
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Local
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Private
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Protected
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Public
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClass
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirFunctionOrProperty
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirHasVisibility
|
||||
@@ -17,34 +21,34 @@ import org.junit.Test
|
||||
|
||||
abstract class LoweringVisibilityCommonizerTest(
|
||||
private val areMembersVirtual: Boolean
|
||||
) : AbstractCommonizerTest<CirHasVisibility, DescriptorVisibility>() {
|
||||
) : AbstractCommonizerTest<CirHasVisibility, Visibility>() {
|
||||
|
||||
@Test
|
||||
fun publicOnly() = doTestSuccess(
|
||||
expected = PUBLIC,
|
||||
PUBLIC.toMock(), PUBLIC.toMock(), PUBLIC.toMock()
|
||||
expected = Public,
|
||||
Public.toMock(), Public.toMock(), Public.toMock()
|
||||
)
|
||||
|
||||
@Test
|
||||
fun protectedOnly() = doTestSuccess(
|
||||
expected = PROTECTED,
|
||||
PROTECTED.toMock(), PROTECTED.toMock(), PROTECTED.toMock()
|
||||
expected = Protected,
|
||||
Protected.toMock(), Protected.toMock(), Protected.toMock()
|
||||
)
|
||||
|
||||
@Test
|
||||
fun internalOnly() = doTestSuccess(
|
||||
expected = INTERNAL,
|
||||
INTERNAL.toMock(), INTERNAL.toMock(), INTERNAL.toMock()
|
||||
expected = Internal,
|
||||
Internal.toMock(), Internal.toMock(), Internal.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun somethingUnexpected() = doTestFailure(
|
||||
PUBLIC.toMock(), LOCAL.toMock()
|
||||
Public.toMock(), Local.toMock()
|
||||
)
|
||||
|
||||
final override fun createCommonizer() = VisibilityCommonizer.lowering()
|
||||
|
||||
protected fun DescriptorVisibility.toMock() = object : CirFunctionOrProperty {
|
||||
protected fun Visibility.toMock() = object : CirFunctionOrProperty {
|
||||
override val annotations get() = unsupported()
|
||||
override val name get() = unsupported()
|
||||
override val typeParameters get() = unsupported()
|
||||
@@ -65,29 +69,29 @@ abstract class LoweringVisibilityCommonizerTest(
|
||||
|
||||
@Test
|
||||
fun publicAndProtected() = doTestSuccess(
|
||||
expected = PROTECTED,
|
||||
PUBLIC.toMock(), PROTECTED.toMock(), PUBLIC.toMock()
|
||||
expected = Protected,
|
||||
Public.toMock(), Protected.toMock(), Public.toMock()
|
||||
)
|
||||
|
||||
@Test
|
||||
fun publicAndInternal() = doTestSuccess(
|
||||
expected = INTERNAL,
|
||||
PUBLIC.toMock(), INTERNAL.toMock(), PUBLIC.toMock()
|
||||
expected = Internal,
|
||||
Public.toMock(), Internal.toMock(), Public.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndInternalAndProtected() = doTestFailure(
|
||||
PUBLIC.toMock(), INTERNAL.toMock(), PROTECTED.toMock()
|
||||
Public.toMock(), Internal.toMock(), Protected.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndInternalAndPrivate() = doTestFailure(
|
||||
PUBLIC.toMock(), INTERNAL.toMock(), PRIVATE.toMock()
|
||||
Public.toMock(), Internal.toMock(), Private.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun privateOnly() = doTestFailure(
|
||||
PRIVATE.toMock()
|
||||
Private.toMock()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -95,42 +99,42 @@ abstract class LoweringVisibilityCommonizerTest(
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndProtected1() = doTestFailure(
|
||||
PUBLIC.toMock(), PROTECTED.toMock()
|
||||
Public.toMock(), Protected.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndProtected2() = doTestFailure(
|
||||
PUBLIC.toMock(), PUBLIC.toMock(), PROTECTED.toMock()
|
||||
Public.toMock(), Public.toMock(), Protected.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndInternal1() = doTestFailure(
|
||||
PUBLIC.toMock(), INTERNAL.toMock()
|
||||
Public.toMock(), Internal.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndInternal2() = doTestFailure(
|
||||
PUBLIC.toMock(), PUBLIC.toMock(), INTERNAL.toMock()
|
||||
Public.toMock(), Public.toMock(), Internal.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun protectedAndInternal1() = doTestFailure(
|
||||
PROTECTED.toMock(), INTERNAL.toMock()
|
||||
Protected.toMock(), Internal.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun protectedAndInternal2() = doTestFailure(
|
||||
PROTECTED.toMock(), PROTECTED.toMock(), INTERNAL.toMock()
|
||||
Protected.toMock(), Protected.toMock(), Internal.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndPrivate() = doTestFailure(
|
||||
PUBLIC.toMock(), PRIVATE.toMock()
|
||||
Public.toMock(), Private.toMock()
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun privateOnly() = doTestFailure(
|
||||
PRIVATE.toMock()
|
||||
Private.toMock()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+24
-20
@@ -5,8 +5,12 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities.*
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Internal
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Local
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Private
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Protected
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Public
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirPropertySetter
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirPropertySetterFactory
|
||||
import org.junit.Test
|
||||
@@ -21,79 +25,79 @@ class PropertySetterCommonizerTest : AbstractCommonizerTest<CirPropertySetter?,
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun missingAndPublic() = doTestFailure(
|
||||
null, null, null, PUBLIC
|
||||
null, null, null, Public
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndMissing() = doTestFailure(
|
||||
PUBLIC, PUBLIC, PUBLIC, null
|
||||
Public, Public, Public, null
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun protectedAndMissing() = doTestFailure(
|
||||
PROTECTED, PROTECTED, null
|
||||
Protected, Protected, null
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun missingAndInternal() = doTestFailure(
|
||||
null, null, INTERNAL
|
||||
null, null, Internal
|
||||
)
|
||||
|
||||
@Test
|
||||
fun publicOnly() = doTestSuccess(
|
||||
expected = PUBLIC,
|
||||
PUBLIC, PUBLIC, PUBLIC
|
||||
expected = Public,
|
||||
Public, Public, Public
|
||||
)
|
||||
|
||||
@Test
|
||||
fun protectedOnly() = doTestSuccess(
|
||||
expected = PROTECTED,
|
||||
PROTECTED, PROTECTED, PROTECTED
|
||||
expected = Protected,
|
||||
Protected, Protected, Protected
|
||||
)
|
||||
|
||||
@Test
|
||||
fun internalOnly() = doTestSuccess(
|
||||
expected = INTERNAL,
|
||||
INTERNAL, INTERNAL, INTERNAL
|
||||
expected = Internal,
|
||||
Internal, Internal, Internal
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun privateOnly() = doTestFailure(
|
||||
PRIVATE
|
||||
Private
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndProtected() = doTestFailure(
|
||||
PUBLIC, PUBLIC, PROTECTED
|
||||
Public, Public, Protected
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndInternal() = doTestFailure(
|
||||
PUBLIC, PUBLIC, INTERNAL
|
||||
Public, Public, Internal
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun protectedAndInternal() = doTestFailure(
|
||||
PROTECTED, PROTECTED, INTERNAL
|
||||
Protected, Protected, Internal
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun publicAndPrivate() = doTestFailure(
|
||||
PUBLIC, PUBLIC, PRIVATE
|
||||
Public, Public, Private
|
||||
)
|
||||
|
||||
@Test(expected = IllegalCommonizerStateException::class)
|
||||
fun somethingUnexpected() = doTestFailure(
|
||||
PUBLIC, LOCAL
|
||||
Public, Local
|
||||
)
|
||||
|
||||
private fun doTestSuccess(expected: DescriptorVisibility?, vararg variants: DescriptorVisibility?) =
|
||||
private fun doTestSuccess(expected: Visibility?, vararg variants: Visibility?) =
|
||||
super.doTestSuccess(
|
||||
expected = expected?.let { CirPropertySetterFactory.createDefaultNoAnnotations(expected) },
|
||||
*variants.map { it?.let(CirPropertySetterFactory::createDefaultNoAnnotations) }.toTypedArray()
|
||||
)
|
||||
|
||||
private fun doTestFailure(vararg variants: DescriptorVisibility?) =
|
||||
private fun doTestFailure(vararg variants: Visibility?) =
|
||||
super.doTestFailure(
|
||||
*variants.map { it?.let(CirPropertySetterFactory::createDefaultNoAnnotations) }.toTypedArray(),
|
||||
shouldFailOnFirstVariant = false
|
||||
|
||||
+5
-3
@@ -5,7 +5,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirClassFactory
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirTypeAliasFactory
|
||||
@@ -478,7 +480,7 @@ class TypeCommonizerTest : AbstractCommonizerTest<CirType, CirType>() {
|
||||
annotations = emptyList(),
|
||||
name = type.classifierId.relativeNameSegments.last(),
|
||||
typeParameters = emptyList(),
|
||||
visibility = DescriptorVisibilities.PUBLIC,
|
||||
visibility = Visibilities.Public,
|
||||
modality = Modality.FINAL,
|
||||
kind = ClassKind.CLASS,
|
||||
companion = null,
|
||||
@@ -502,7 +504,7 @@ class TypeCommonizerTest : AbstractCommonizerTest<CirType, CirType>() {
|
||||
annotations = emptyList(),
|
||||
name = type.classifierId.relativeNameSegments.last(),
|
||||
typeParameters = emptyList(),
|
||||
visibility = DescriptorVisibilities.PUBLIC,
|
||||
visibility = Visibilities.Public,
|
||||
underlyingType = type.underlyingType,
|
||||
expandedType = computeExpandedType(type.underlyingType)
|
||||
)
|
||||
|
||||
@@ -41,7 +41,7 @@ internal fun mockClassType(
|
||||
): CirClassType = CirTypeFactory.createClassType(
|
||||
classId = createValidClassifierId(classId),
|
||||
outerType = null,
|
||||
visibility = DescriptorVisibilities.PUBLIC,
|
||||
visibility = Visibilities.Public,
|
||||
arguments = emptyList(),
|
||||
isMarkedNullable = nullable
|
||||
)
|
||||
@@ -60,7 +60,7 @@ internal val MOCK_CLASSIFIERS = CirKnownClassifiers(
|
||||
annotations = emptyList(),
|
||||
name = CirName.create("Any"),
|
||||
typeParameters = emptyList(),
|
||||
visibility = DescriptorVisibilities.PUBLIC,
|
||||
visibility = Visibilities.Public,
|
||||
modality = Modality.OPEN,
|
||||
kind = ClassKind.CLASS,
|
||||
companion = null,
|
||||
|
||||
Reference in New Issue
Block a user