[Commonizer] Extract creation of CirTypeParameter from CirTypeParameterFactory
This commit is contained in:
+25
@@ -11,4 +11,29 @@ interface CirTypeParameter : CirHasAnnotations, CirHasName {
|
||||
val isReified: Boolean
|
||||
val variance: Variance
|
||||
val upperBounds: List<CirType>
|
||||
|
||||
companion object {
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun create(
|
||||
annotations: List<CirAnnotation>,
|
||||
name: CirName,
|
||||
isReified: Boolean,
|
||||
variance: Variance,
|
||||
upperBounds: List<CirType>
|
||||
): CirTypeParameter = CirTypeParameterImpl(
|
||||
annotations = annotations,
|
||||
name = name,
|
||||
isReified = isReified,
|
||||
variance = variance,
|
||||
upperBounds = upperBounds
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
data class CirTypeParameterImpl(
|
||||
override val annotations: List<CirAnnotation>,
|
||||
override val name: CirName,
|
||||
override val isReified: Boolean,
|
||||
override val variance: Variance,
|
||||
override val upperBounds: List<CirType>
|
||||
) : CirTypeParameter
|
||||
|
||||
+1
-22
@@ -8,40 +8,19 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.factory
|
||||
import kotlinx.metadata.Flag
|
||||
import kotlinx.metadata.KmTypeParameter
|
||||
import kotlinx.metadata.klib.annotations
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirAnnotation
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirType
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeParameter
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirTypeFactory.decodeVariance
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirTypeParameterImpl
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.ALWAYS_HAS_ANNOTATIONS
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.filteredUpperBounds
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
object CirTypeParameterFactory {
|
||||
fun create(source: KmTypeParameter, typeResolver: CirTypeResolver): CirTypeParameter = create(
|
||||
fun create(source: KmTypeParameter, typeResolver: CirTypeResolver): CirTypeParameter = CirTypeParameter.create(
|
||||
annotations = CirAnnotationFactory.createAnnotations(ALWAYS_HAS_ANNOTATIONS, typeResolver, source::annotations),
|
||||
name = CirName.create(source.name),
|
||||
isReified = Flag.TypeParameter.IS_REIFIED(source.flags),
|
||||
variance = decodeVariance(source.variance),
|
||||
upperBounds = source.filteredUpperBounds.compactMap { CirTypeFactory.create(it, typeResolver) }
|
||||
)
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun create(
|
||||
annotations: List<CirAnnotation>,
|
||||
name: CirName,
|
||||
isReified: Boolean,
|
||||
variance: Variance,
|
||||
upperBounds: List<CirType>
|
||||
): CirTypeParameter {
|
||||
return CirTypeParameterImpl(
|
||||
annotations = annotations,
|
||||
name = name,
|
||||
isReified = isReified,
|
||||
variance = variance,
|
||||
upperBounds = upperBounds
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
/*
|
||||
* 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.cir.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirAnnotation
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirType
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeParameter
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
data class CirTypeParameterImpl(
|
||||
override val annotations: List<CirAnnotation>,
|
||||
override val name: CirName,
|
||||
override val isReified: Boolean,
|
||||
override val variance: Variance,
|
||||
override val upperBounds: List<CirType>
|
||||
) : CirTypeParameter
|
||||
+1
-2
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirType
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeParameter
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirTypeParameterFactory
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirKnownClassifiers
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
@@ -18,7 +17,7 @@ class TypeParameterCommonizer(classifiers: CirKnownClassifiers) : AbstractStanda
|
||||
private lateinit var variance: Variance
|
||||
private val upperBounds = TypeParameterUpperBoundsCommonizer(classifiers)
|
||||
|
||||
override fun commonizationResult() = CirTypeParameterFactory.create(
|
||||
override fun commonizationResult() = CirTypeParameter.create(
|
||||
annotations = emptyList(),
|
||||
name = name,
|
||||
isReified = isReified,
|
||||
|
||||
+1
-2
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.descriptors.commonizer.core
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeParameter
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirTypeParameterFactory
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.MOCK_CLASSIFIERS
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.mockClassType
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
@@ -87,7 +86,7 @@ class TypeParameterCommonizerTest : AbstractCommonizerTest<CirTypeParameter, Cir
|
||||
isReified: Boolean = false,
|
||||
variance: Variance = Variance.INVARIANT,
|
||||
upperBounds: List<String> = listOf("kotlin/Any")
|
||||
) = CirTypeParameterFactory.create(
|
||||
) = CirTypeParameter.create(
|
||||
annotations = emptyList(),
|
||||
name = CirName.create(name),
|
||||
isReified = isReified,
|
||||
|
||||
Reference in New Issue
Block a user