From f3b400975e4b60fb61852a60349cb3c0c235a548 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Mon, 8 Jun 2020 15:08:50 +0700 Subject: [PATCH] [Commonizer] Drop useless "allowPrivate" flag in VisibilityCommonizer --- .../commonizer/core/TypeAliasCommonizer.kt | 2 +- .../commonizer/core/VisibilityCommonizer.kt | 12 +++--- .../core/LoweringVisibilityCommonizerTest.kt | 39 ++----------------- 3 files changed, 10 insertions(+), 43 deletions(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeAliasCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeAliasCommonizer.kt index 83563e857a5..6172ddc3ff7 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeAliasCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeAliasCommonizer.kt @@ -43,7 +43,7 @@ private class TypeAliasLiftingUpCommonizer(cache: CirClassifiersCache) : Abstrac private val typeParameters = TypeParameterListCommonizer(cache) private val underlyingType = TypeCommonizer(cache) private lateinit var expandedType: CirSimpleType - private val visibility = VisibilityCommonizer.lowering(allowPrivate = false) + private val visibility = VisibilityCommonizer.lowering() override fun commonizationResult(): CirTypeAlias = CirTypeAliasFactory.create( annotations = emptyList(), diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/VisibilityCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/VisibilityCommonizer.kt index 1fe77bff2b2..e62c754a16e 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/VisibilityCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/VisibilityCommonizer.kt @@ -10,10 +10,10 @@ 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(private val allowPrivate: Boolean) : Commonizer { +abstract class VisibilityCommonizer : Commonizer { companion object { - fun lowering(allowPrivate: Boolean = false): VisibilityCommonizer = LoweringVisibilityCommonizer(allowPrivate) + fun lowering(): VisibilityCommonizer = LoweringVisibilityCommonizer() fun equalizing(): VisibilityCommonizer = EqualizingVisibilityCommonizer() } @@ -27,7 +27,7 @@ abstract class VisibilityCommonizer(private val allowPrivate: Boolean) : Commoni return false val nextVisibility = next.visibility - if (!allowPrivate && Visibilities.isPrivate(nextVisibility) || !canBeCommonized(next)) { + if (Visibilities.isPrivate(nextVisibility) || !canBeCommonized(next)) { temp = Visibilities.UNKNOWN return false } @@ -42,10 +42,10 @@ abstract class VisibilityCommonizer(private val allowPrivate: Boolean) : Commoni } /** - * Choose the lowest possible visibility ignoring private for all given member descriptors, if possible. + * Choose the lowest possible visibility ignoring private for all given member descriptors. * If at least one member descriptor is virtual, then the commonizer succeeds only if all visibilities are equal. */ -private class LoweringVisibilityCommonizer(allowPrivate: Boolean) : VisibilityCommonizer(allowPrivate) { +private class LoweringVisibilityCommonizer : VisibilityCommonizer() { private var atLeastOneVirtualCallableMet = false private var atLeastTwoVisibilitiesMet = false @@ -73,7 +73,7 @@ private class LoweringVisibilityCommonizer(allowPrivate: Boolean) : VisibilityCo /** * Make sure that visibilities of all member descriptors are equal and are not private according to [Visibilities.isPrivate]. */ -private class EqualizingVisibilityCommonizer : VisibilityCommonizer(false) { +private class EqualizingVisibilityCommonizer : VisibilityCommonizer() { override fun canBeCommonized(next: CirHasVisibility) = true override fun getNext(current: Visibility, next: Visibility) = diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt index c5f0b0621c0..551a5ea8805 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.unsupported import org.junit.Test abstract class LoweringVisibilityCommonizerTest( - private val allowPrivate: Boolean, private val areMembersVirtual: Boolean ) : AbstractCommonizerTest() { @@ -43,7 +42,7 @@ abstract class LoweringVisibilityCommonizerTest( PUBLIC.toMock(), LOCAL.toMock() ) - final override fun createCommonizer() = VisibilityCommonizer.lowering(allowPrivate = allowPrivate) + final override fun createCommonizer() = VisibilityCommonizer.lowering() protected fun Visibility.toMock() = object : CirFunctionOrProperty { override val annotations get() = unsupported() @@ -59,39 +58,7 @@ abstract class LoweringVisibilityCommonizerTest( override val kind get() = unsupported() } - class PrivateMembers : LoweringVisibilityCommonizerTest(true, false) { - - @Test - fun publicAndProtected() = doTestSuccess( - expected = PROTECTED, - PUBLIC.toMock(), PROTECTED.toMock(), PUBLIC.toMock() - ) - - @Test - fun publicAndInternal() = doTestSuccess( - expected = INTERNAL, - PUBLIC.toMock(), INTERNAL.toMock(), PUBLIC.toMock() - ) - - @Test(expected = IllegalCommonizerStateException::class) - fun publicAndInternalAndProtected() = doTestFailure( - PUBLIC.toMock(), INTERNAL.toMock(), PROTECTED.toMock() - ) - - @Test - fun publicAndInternalAndPrivate() = doTestSuccess( - expected = PRIVATE, - PUBLIC.toMock(), INTERNAL.toMock(), PRIVATE.toMock() - ) - - @Test - fun privateOnly() = doTestSuccess( - expected = PRIVATE, - PRIVATE.toMock(), PRIVATE.toMock(), PRIVATE.toMock() - ) - } - - class NonVirtualMembers : LoweringVisibilityCommonizerTest(false, false) { + class NonVirtualMembers : LoweringVisibilityCommonizerTest(false) { @Test fun publicAndProtected() = doTestSuccess( @@ -121,7 +88,7 @@ abstract class LoweringVisibilityCommonizerTest( ) } - class VirtualMembers : LoweringVisibilityCommonizerTest(false, true) { + class VirtualMembers : LoweringVisibilityCommonizerTest(true) { @Test(expected = IllegalCommonizerStateException::class) fun publicAndProtected1() = doTestFailure(