From 413e6552ef39be135d584d6330db99bdf70937c8 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Fri, 8 May 2020 15:32:37 +0700 Subject: [PATCH] [Commonizer] Simplify creation of individual commonizers --- .../AbstractFunctionOrPropertyCommonizer.kt | 8 +++--- .../commonizer/core/ClassCommonizer.kt | 4 +-- .../core/ClassConstructorCommonizer.kt | 4 +-- .../commonizer/core/CommonizationVisitor.kt | 2 +- .../core/ExtensionReceiverCommonizer.kt | 11 ++------ .../commonizer/core/FunctionCommonizer.kt | 4 +-- .../core/FunctionModifiersCommonizer.kt | 8 +----- .../commonizer/core/ModalityCommonizer.kt | 8 +----- .../commonizer/core/ModuleCommonizer.kt | 8 +----- .../commonizer/core/PropertyCommonizer.kt | 2 +- .../core/PropertySetterCommonizer.kt | 18 ++++--------- .../commonizer/core/RootCommonizer.kt | 8 +----- .../commonizer/core/TypeAliasCommonizer.kt | 2 +- .../commonizer/core/TypeCommonizer.kt | 11 +------- .../core/TypeParameterCommonizer.kt | 25 ++----------------- .../core/TypeParameterListCommonizer.kt | 13 ++++++++++ .../core/ValueParameterCommonizer.kt | 25 ++----------------- .../core/ValueParameterListCommonizer.kt | 13 ++++++++++ .../commonizer/mergedtree/ir/nodeBuilders.kt | 4 +-- ....kt => ExtensionReceiverCommonizerTest.kt} | 4 +-- ....kt => FunctionModifiersCommonizerTest.kt} | 4 +-- ...nizerTest.kt => ModalityCommonizerTest.kt} | 4 +-- ...est.kt => PropertySetterCommonizerTest.kt} | 4 +-- ...ommonizerTest.kt => RootCommonizerTest.kt} | 4 +-- ...ommonizerTest.kt => TypeCommonizerTest.kt} | 4 +-- ...Test.kt => TypeParameterCommonizerTest.kt} | 4 +-- ....kt => TypeParameterListCommonizerTest.kt} | 6 ++--- ...est.kt => ValueParameterCommonizerTest.kt} | 4 +-- ...kt => ValueParameterListCommonizerTest.kt} | 6 ++--- 29 files changed, 79 insertions(+), 143 deletions(-) create mode 100644 native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterListCommonizer.kt create mode 100644 native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterListCommonizer.kt rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultExtensionReceiverCommonizerTest.kt => ExtensionReceiverCommonizerTest.kt} (92%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultFunctionModifiersCommonizerTest.kt => FunctionModifiersCommonizerTest.kt} (97%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultModalityCommonizerTest.kt => ModalityCommonizerTest.kt} (88%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultPropertySetterCommonizerTest.kt => PropertySetterCommonizerTest.kt} (94%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultRootCommonizerTest.kt => RootCommonizerTest.kt} (97%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultTypeCommonizerTest.kt => TypeCommonizerTest.kt} (99%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultTypeParameterCommonizerTest.kt => TypeParameterCommonizerTest.kt} (94%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultTypeParameterListCommonizerTest.kt => TypeParameterListCommonizerTest.kt} (94%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultValueParameterCommonizerTest.kt => ValueParameterCommonizerTest.kt} (97%) rename native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/{DefaultValueParameterListCommonizerTest.kt => ValueParameterListCommonizerTest.kt} (96%) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt index fcbfdc37cd7..fba1c8b8525 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt @@ -17,12 +17,12 @@ abstract class AbstractFunctionOrPropertyCommonizer( cache: CirClassifiersCache ) : AbstractStandardCommonizer() { protected lateinit var name: Name - protected val modality = ModalityCommonizer.default() + protected val modality = ModalityCommonizer() protected val visibility = VisibilityCommonizer.lowering() - protected val extensionReceiver = ExtensionReceiverCommonizer.default(cache) - protected val returnType = TypeCommonizer.default(cache) + protected val extensionReceiver = ExtensionReceiverCommonizer(cache) + protected val returnType = TypeCommonizer(cache) protected lateinit var kind: CallableMemberDescriptor.Kind - protected val typeParameters = TypeParameterListCommonizer.default(cache) + protected val typeParameters = TypeParameterListCommonizer(cache) override fun initialize(first: T) { name = first.name diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassCommonizer.kt index b774304a90d..6bc1f07eb65 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassCommonizer.kt @@ -14,8 +14,8 @@ import org.jetbrains.kotlin.name.Name class ClassCommonizer(cache: CirClassifiersCache) : AbstractStandardCommonizer() { private lateinit var name: Name private lateinit var kind: ClassKind - private val typeParameters = TypeParameterListCommonizer.default(cache) - private val modality = ModalityCommonizer.default() + private val typeParameters = TypeParameterListCommonizer(cache) + private val modality = ModalityCommonizer() private val visibility = VisibilityCommonizer.equalizing() private var isInner = false private var isInline = false diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt index 9ad7f2efd98..a867d3f33a7 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt @@ -15,8 +15,8 @@ class ClassConstructorCommonizer(cache: CirClassifiersCache) : AbstractStandardC private var isPrimary = false private lateinit var kind: CallableMemberDescriptor.Kind private val visibility = VisibilityCommonizer.equalizing() - private val typeParameters = TypeParameterListCommonizer.default(cache) - private val valueParameters = ValueParameterListCommonizer.default(cache) + private val typeParameters = TypeParameterListCommonizer(cache) + private val valueParameters = ValueParameterListCommonizer(cache) private var hasStableParameterNames = true private var hasSynthesizedParameterNames = false diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/CommonizationVisitor.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/CommonizationVisitor.kt index 8c32ce3a0a4..c1b5b0955f5 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/CommonizationVisitor.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/CommonizationVisitor.kt @@ -97,7 +97,7 @@ internal class CommonizationVisitor( } for ((_, supertypesGroup) in supertypesMap) { - val commonSupertype = commonize(supertypesGroup.toList(), TypeCommonizer.default(root.cache)) + val commonSupertype = commonize(supertypesGroup.toList(), TypeCommonizer(root.cache)) if (commonSupertype != null) commonClass.supertypes += commonSupertype } diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ExtensionReceiverCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ExtensionReceiverCommonizer.kt index 79581bbcf1e..906e65123c1 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ExtensionReceiverCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ExtensionReceiverCommonizer.kt @@ -10,16 +10,9 @@ import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirExtensionRec import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirType import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirExtensionReceiver.Companion.toReceiverNoAnnotations -interface ExtensionReceiverCommonizer : Commonizer { - companion object { - fun default(cache: CirClassifiersCache): ExtensionReceiverCommonizer = DefaultExtensionReceiverCommonizer(cache) - } -} - -private class DefaultExtensionReceiverCommonizer(cache: CirClassifiersCache) : - ExtensionReceiverCommonizer, +class ExtensionReceiverCommonizer(cache: CirClassifiersCache) : AbstractNullableCommonizer( - wrappedCommonizerFactory = { TypeCommonizer.default(cache) }, + wrappedCommonizerFactory = { TypeCommonizer(cache) }, extractor = { it.type }, builder = { it.toReceiverNoAnnotations() } ) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt index 4792396ba9e..3295b48ed40 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt @@ -11,8 +11,8 @@ import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirFunction class FunctionCommonizer(cache: CirClassifiersCache) : AbstractFunctionOrPropertyCommonizer(cache) { private val annotations = AnnotationsCommonizer() - private val modifiers = FunctionModifiersCommonizer.default() - private val valueParameters = ValueParameterListCommonizer.default(cache) + private val modifiers = FunctionModifiersCommonizer() + private val valueParameters = ValueParameterListCommonizer(cache) private var hasStableParameterNames = true private var hasSynthesizedParameterNames = false diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionModifiersCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionModifiersCommonizer.kt index 048fba5f75d..11cda827265 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionModifiersCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionModifiersCommonizer.kt @@ -7,13 +7,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.core import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirFunctionModifiers -interface FunctionModifiersCommonizer : Commonizer { - companion object { - fun default(): FunctionModifiersCommonizer = DefaultFunctionModifiersCommonizer() - } -} - -private class DefaultFunctionModifiersCommonizer : FunctionModifiersCommonizer { +class FunctionModifiersCommonizer : Commonizer { private var modifiers: CirFunctionModifiersImpl? = null private var error = false diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ModalityCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ModalityCommonizer.kt index a5ceaecd66b..7a2939a703b 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ModalityCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ModalityCommonizer.kt @@ -7,13 +7,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.core import org.jetbrains.kotlin.descriptors.Modality -interface ModalityCommonizer : Commonizer { - companion object { - fun default(): ModalityCommonizer = DefaultModalityCommonizer() - } -} - -private class DefaultModalityCommonizer : ModalityCommonizer { +class ModalityCommonizer : Commonizer { private var temp: Modality? = null private var error = false diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ModuleCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ModuleCommonizer.kt index f9947249a5b..499552a4e20 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ModuleCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ModuleCommonizer.kt @@ -8,13 +8,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.core import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirModule import org.jetbrains.kotlin.name.Name -interface ModuleCommonizer : Commonizer { - companion object { - fun default(): ModuleCommonizer = DefaultModuleCommonizer() - } -} - -private class DefaultModuleCommonizer : ModuleCommonizer, AbstractStandardCommonizer() { +class ModuleCommonizer : AbstractStandardCommonizer() { private lateinit var name: Name override fun commonizationResult() = CirModule(name = name) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt index 107bb178aeb..8d8d5979564 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirCommonProper import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirProperty class PropertyCommonizer(cache: CirClassifiersCache) : AbstractFunctionOrPropertyCommonizer(cache) { - private val setter = PropertySetterCommonizer.default() + private val setter = PropertySetterCommonizer() private var isExternal = true override fun commonizationResult() = CirCommonProperty( diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertySetterCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertySetterCommonizer.kt index 518621a7f0f..06dba876fa0 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertySetterCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertySetterCommonizer.kt @@ -9,16 +9,8 @@ import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirDeclarationWithVisibility import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirSetter -interface PropertySetterCommonizer : Commonizer { - companion object { - fun default(): PropertySetterCommonizer = DefaultPropertySetterCommonizer() - } -} - -private class DefaultPropertySetterCommonizer : - PropertySetterCommonizer, - AbstractNullableCommonizer( - wrappedCommonizerFactory = { VisibilityCommonizer.equalizing() }, - extractor = { it }, - builder = { CirSetter.createDefaultNoAnnotations(it) } - ) +class PropertySetterCommonizer : AbstractNullableCommonizer( + wrappedCommonizerFactory = { VisibilityCommonizer.equalizing() }, + extractor = { it }, + builder = { CirSetter.createDefaultNoAnnotations(it) } +) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/RootCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/RootCommonizer.kt index ca72a38229f..58e17cc9681 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/RootCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/RootCommonizer.kt @@ -12,13 +12,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.InputTarget import org.jetbrains.kotlin.descriptors.commonizer.OutputTarget import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirRoot -interface RootCommonizer : Commonizer { - companion object { - fun default(): RootCommonizer = DefaultRootCommonizer() - } -} - -private class DefaultRootCommonizer : RootCommonizer, AbstractStandardCommonizer() { +class RootCommonizer : AbstractStandardCommonizer() { private val inputTargets = mutableSetOf() private var konanBuiltInsProvider: BuiltInsProvider? = null 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 7a3b1d578a4..d294350f12d 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 @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.name.Name class TypeAliasCommonizer(cache: CirClassifiersCache) : AbstractStandardCommonizer() { private lateinit var name: Name - private val underlyingType = TypeCommonizer.default(cache) + private val underlyingType = TypeCommonizer(cache) private val visibility = VisibilityCommonizer.lowering(allowPrivate = true) override fun commonizationResult() = CirCommonClass( diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeCommonizer.kt index b0b91e7a47d..0153cd4207d 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeCommonizer.kt @@ -9,16 +9,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.* import org.jetbrains.kotlin.descriptors.commonizer.utils.isUnderStandardKotlinPackages import org.jetbrains.kotlin.types.AbstractStrictEqualityTypeChecker -interface TypeCommonizer : Commonizer { - companion object { - fun default(cache: CirClassifiersCache): TypeCommonizer = DefaultTypeCommonizer(cache) - } -} - -private class DefaultTypeCommonizer(private val cache: CirClassifiersCache) : - TypeCommonizer, - AbstractStandardCommonizer() { - +class TypeCommonizer(private val cache: CirClassifiersCache) : AbstractStandardCommonizer() { private lateinit var temp: CirType override fun commonizationResult() = temp diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterCommonizer.kt index c02d0ad97b0..9ce9b13ced3 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterCommonizer.kt @@ -12,16 +12,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirTypeParamete import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance -interface TypeParameterCommonizer : Commonizer { - companion object { - fun default(cache: CirClassifiersCache): TypeParameterCommonizer = DefaultTypeParameterCommonizer(cache) - } -} - -private class DefaultTypeParameterCommonizer(cache: CirClassifiersCache) : - TypeParameterCommonizer, - AbstractStandardCommonizer() { - +class TypeParameterCommonizer(cache: CirClassifiersCache) : AbstractStandardCommonizer() { private lateinit var name: Name private var isReified = false private lateinit var variance: Variance @@ -48,17 +39,5 @@ private class DefaultTypeParameterCommonizer(cache: CirClassifiersCache) : } private class TypeParameterUpperBoundsCommonizer(cache: CirClassifiersCache) : AbstractListCommonizer( - singleElementCommonizerFactory = { TypeCommonizer.default(cache) } + singleElementCommonizerFactory = { TypeCommonizer(cache) } ) - -interface TypeParameterListCommonizer : Commonizer, List> { - companion object { - fun default(cache: CirClassifiersCache): TypeParameterListCommonizer = DefaultTypeParameterListCommonizer(cache) - } -} - -private class DefaultTypeParameterListCommonizer(cache: CirClassifiersCache) : - TypeParameterListCommonizer, - AbstractListCommonizer( - singleElementCommonizerFactory = { TypeParameterCommonizer.default(cache) } - ) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterListCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterListCommonizer.kt new file mode 100644 index 00000000000..087a8ca6d03 --- /dev/null +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterListCommonizer.kt @@ -0,0 +1,13 @@ +/* + * 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.descriptors.commonizer.core + +import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirClassifiersCache +import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirTypeParameter + +class TypeParameterListCommonizer(cache: CirClassifiersCache) : AbstractListCommonizer( + singleElementCommonizerFactory = { TypeParameterCommonizer(cache) } +) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterCommonizer.kt index 1eea32eeb67..27edb6993b6 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterCommonizer.kt @@ -12,18 +12,9 @@ import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirValueParamet import org.jetbrains.kotlin.descriptors.commonizer.utils.isNull import org.jetbrains.kotlin.name.Name -interface ValueParameterCommonizer : Commonizer { - companion object { - fun default(cache: CirClassifiersCache): ValueParameterCommonizer = DefaultValueParameterCommonizer(cache) - } -} - -private class DefaultValueParameterCommonizer(cache: CirClassifiersCache) : - ValueParameterCommonizer, - AbstractStandardCommonizer() { - +class ValueParameterCommonizer(cache: CirClassifiersCache) : AbstractStandardCommonizer() { private lateinit var name: Name - private val returnType = TypeCommonizer.default(cache) + private val returnType = TypeCommonizer(cache) private var varargElementType: CirType? = null private var isCrossinline = true private var isNoinline = true @@ -57,15 +48,3 @@ private class DefaultValueParameterCommonizer(cache: CirClassifiersCache) : return result } } - -interface ValueParameterListCommonizer : Commonizer, List> { - companion object { - fun default(cache: CirClassifiersCache): ValueParameterListCommonizer = DefaultValueParameterListCommonizer(cache) - } -} - -private class DefaultValueParameterListCommonizer(cache: CirClassifiersCache) : - ValueParameterListCommonizer, - AbstractListCommonizer( - singleElementCommonizerFactory = { ValueParameterCommonizer.default(cache) } - ) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterListCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterListCommonizer.kt new file mode 100644 index 00000000000..97e0041867e --- /dev/null +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterListCommonizer.kt @@ -0,0 +1,13 @@ +/* + * 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.descriptors.commonizer.core + +import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirClassifiersCache +import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirValueParameter + +class ValueParameterListCommonizer(cache: CirClassifiersCache) : AbstractListCommonizer( + singleElementCommonizerFactory = { ValueParameterCommonizer(cache) } +) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/ir/nodeBuilders.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/ir/nodeBuilders.kt index cd6d825d851..2e3d42e91ef 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/ir/nodeBuilders.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/ir/nodeBuilders.kt @@ -26,7 +26,7 @@ internal fun buildRootNode( storageManager = storageManager, descriptors = targetProviders, targetDeclarationProducer = { CirRoot(it.target, it.builtInsClass.name, it.builtInsProvider) }, - commonValueProducer = { commonize(it, RootCommonizer.default()) }, + commonValueProducer = { commonize(it, RootCommonizer()) }, recursionMarker = null, nodeProducer = ::CirRootNode ) @@ -38,7 +38,7 @@ internal fun buildModuleNode( storageManager = storageManager, descriptors = modules, targetDeclarationProducer = ::CirModule, - commonValueProducer = { commonize(it, ModuleCommonizer.default()) }, + commonValueProducer = { commonize(it, ModuleCommonizer()) }, recursionMarker = null, nodeProducer = ::CirModuleNode ) diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultExtensionReceiverCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/ExtensionReceiverCommonizerTest.kt similarity index 92% rename from native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultExtensionReceiverCommonizerTest.kt rename to native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/ExtensionReceiverCommonizerTest.kt index e04c320979f..59e05acb1c1 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultExtensionReceiverCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/ExtensionReceiverCommonizerTest.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirType import org.jetbrains.kotlin.descriptors.commonizer.utils.mockClassType import org.junit.Test -class DefaultExtensionReceiverCommonizerTest : AbstractCommonizerTest() { +class ExtensionReceiverCommonizerTest : AbstractCommonizerTest() { @Test fun nullReceiver() = doTestSuccess( @@ -50,7 +50,7 @@ class DefaultExtensionReceiverCommonizerTest : AbstractCommonizerTest() { +class FunctionModifiersCommonizerTest : AbstractCommonizerTest() { @Test fun allDefault() = doTestSuccess( @@ -161,7 +161,7 @@ class DefaultFunctionModifiersCommonizerTest : AbstractCommonizerTest() { +class ModalityCommonizerTest : AbstractCommonizerTest() { @Test fun onlyFinal() = doTestSuccess(FINAL, FINAL, FINAL, FINAL) @@ -38,5 +38,5 @@ class DefaultModalityCommonizerTest : AbstractCommonizerTest @Test fun openAndFinal() = doTestSuccess(FINAL, OPEN, OPEN, FINAL) - override fun createCommonizer() = ModalityCommonizer.default() + override fun createCommonizer() = ModalityCommonizer() } diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultPropertySetterCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/PropertySetterCommonizerTest.kt similarity index 94% rename from native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultPropertySetterCommonizerTest.kt rename to native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/PropertySetterCommonizerTest.kt index 2b37631a7de..424c94f2f1e 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultPropertySetterCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/PropertySetterCommonizerTest.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirSetter import org.junit.Test -class DefaultPropertySetterCommonizerTest : AbstractCommonizerTest() { +class PropertySetterCommonizerTest : AbstractCommonizerTest() { @Test fun absentOnly() = super.doTestSuccess(null, null, null, null) @@ -66,5 +66,5 @@ class DefaultPropertySetterCommonizerTest : AbstractCommonizerTest() { +class RootCommonizerTest : AbstractCommonizerTest() { @Test fun allAreNative() = doTestSuccess( @@ -148,7 +148,7 @@ class DefaultRootCommonizerTest : AbstractCommonizerTest() { JVM_BUILT_INS.toMock(InputTarget("jvm3")) ) - override fun createCommonizer() = RootCommonizer.default() + override fun createCommonizer() = RootCommonizer() override fun isEqual(a: CirRoot?, b: CirRoot?) = (a === b) diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeCommonizerTest.kt similarity index 99% rename from native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeCommonizerTest.kt rename to native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeCommonizerTest.kt index 81f78a78ad0..8f1e0432d99 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeCommonizerTest.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.types.getAbbreviation import org.junit.Before import org.junit.Test -class DefaultTypeCommonizerTest : AbstractCommonizerTest() { +class TypeCommonizerTest : AbstractCommonizerTest() { private lateinit var cache: ClassifiersCacheImpl @@ -426,7 +426,7 @@ class DefaultTypeCommonizerTest : AbstractCommonizerTest() { ) } - override fun createCommonizer() = TypeCommonizer.default(cache) + override fun createCommonizer() = TypeCommonizer(cache) override fun isEqual(a: CirType?, b: CirType?) = (a === b) || (a != null && b != null && areTypesEqual(cache, a, b)) } diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeParameterCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterCommonizerTest.kt similarity index 94% rename from native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeParameterCommonizerTest.kt rename to native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterCommonizerTest.kt index a2c4c4e6274..6b762d00043 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeParameterCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterCommonizerTest.kt @@ -14,8 +14,8 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance import org.junit.Test -class DefaultTypeParameterCommonizerTest : AbstractCommonizerTest() { - override fun createCommonizer() = TypeParameterCommonizer.default(EMPTY_CLASSIFIERS_CACHE) +class TypeParameterCommonizerTest : AbstractCommonizerTest() { + override fun createCommonizer() = TypeParameterCommonizer(EMPTY_CLASSIFIERS_CACHE) @Test fun allAreReified() = doTestSuccess( diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeParameterListCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterListCommonizerTest.kt similarity index 94% rename from native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeParameterListCommonizerTest.kt rename to native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterListCommonizerTest.kt index 8096595f330..81b8a9c6324 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultTypeParameterListCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/TypeParameterListCommonizerTest.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.EMPTY_CLASSIFIERS_CACHE import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.ir.CirTypeParameter import org.junit.Test -class DefaultTypeParameterListCommonizerTest : AbstractCommonizerTest, List>() { +class TypeParameterListCommonizerTest : AbstractCommonizerTest, List>() { @Test fun emptyValueParameters() = doTestSuccess( @@ -108,13 +108,13 @@ class DefaultTypeParameterListCommonizerTest : AbstractCommonizerTest): List { check(params.isNotEmpty()) return params.map { (name, returnTypeFqName) -> - DefaultTypeParameterCommonizerTest.mockTypeParam( + TypeParameterCommonizerTest.mockTypeParam( name = name, upperBounds = listOf(returnTypeFqName) ) diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultValueParameterCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterCommonizerTest.kt similarity index 97% rename from native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultValueParameterCommonizerTest.kt rename to native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterCommonizerTest.kt index 29707550e84..13431784bb1 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/DefaultValueParameterCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/ValueParameterCommonizerTest.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.mockClassType import org.jetbrains.kotlin.name.Name import org.junit.Test -class DefaultValueParameterCommonizerTest : AbstractCommonizerTest() { +class ValueParameterCommonizerTest : AbstractCommonizerTest() { @Test fun sameReturnType1() = doTestSuccess( @@ -139,7 +139,7 @@ class DefaultValueParameterCommonizerTest : AbstractCommonizerTest, List>() { +class ValueParameterListCommonizerTest : AbstractCommonizerTest, List>() { @Test fun emptyValueParameters() = doTestSuccess( @@ -164,7 +164,7 @@ class DefaultValueParameterListCommonizerTest : AbstractCommonizerTest?, b: List?): Boolean { if (a === b) @@ -184,7 +184,7 @@ class DefaultValueParameterListCommonizerTest : AbstractCommonizerTest): List { check(params.isNotEmpty()) return params.map { (name, returnTypeFqName) -> - DefaultValueParameterCommonizerTest.mockValueParam( + ValueParameterCommonizerTest.mockValueParam( name = name, returnTypeFqName = returnTypeFqName )