[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 isReified: Boolean
|
||||||
val variance: Variance
|
val variance: Variance
|
||||||
val upperBounds: List<CirType>
|
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.Flag
|
||||||
import kotlinx.metadata.KmTypeParameter
|
import kotlinx.metadata.KmTypeParameter
|
||||||
import kotlinx.metadata.klib.annotations
|
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.CirName
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirType
|
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeParameter
|
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.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.metadata.ALWAYS_HAS_ANNOTATIONS
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap
|
import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.filteredUpperBounds
|
import org.jetbrains.kotlin.descriptors.commonizer.utils.filteredUpperBounds
|
||||||
import org.jetbrains.kotlin.types.Variance
|
|
||||||
|
|
||||||
object CirTypeParameterFactory {
|
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),
|
annotations = CirAnnotationFactory.createAnnotations(ALWAYS_HAS_ANNOTATIONS, typeResolver, source::annotations),
|
||||||
name = CirName.create(source.name),
|
name = CirName.create(source.name),
|
||||||
isReified = Flag.TypeParameter.IS_REIFIED(source.flags),
|
isReified = Flag.TypeParameter.IS_REIFIED(source.flags),
|
||||||
variance = decodeVariance(source.variance),
|
variance = decodeVariance(source.variance),
|
||||||
upperBounds = source.filteredUpperBounds.compactMap { CirTypeFactory.create(it, typeResolver) }
|
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.CirName
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirType
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirType
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeParameter
|
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.descriptors.commonizer.mergedtree.CirKnownClassifiers
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
@@ -18,7 +17,7 @@ class TypeParameterCommonizer(classifiers: CirKnownClassifiers) : AbstractStanda
|
|||||||
private lateinit var variance: Variance
|
private lateinit var variance: Variance
|
||||||
private val upperBounds = TypeParameterUpperBoundsCommonizer(classifiers)
|
private val upperBounds = TypeParameterUpperBoundsCommonizer(classifiers)
|
||||||
|
|
||||||
override fun commonizationResult() = CirTypeParameterFactory.create(
|
override fun commonizationResult() = CirTypeParameter.create(
|
||||||
annotations = emptyList(),
|
annotations = emptyList(),
|
||||||
name = name,
|
name = name,
|
||||||
isReified = isReified,
|
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.CirName
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeParameter
|
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.MOCK_CLASSIFIERS
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.mockClassType
|
import org.jetbrains.kotlin.descriptors.commonizer.utils.mockClassType
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
@@ -87,7 +86,7 @@ class TypeParameterCommonizerTest : AbstractCommonizerTest<CirTypeParameter, Cir
|
|||||||
isReified: Boolean = false,
|
isReified: Boolean = false,
|
||||||
variance: Variance = Variance.INVARIANT,
|
variance: Variance = Variance.INVARIANT,
|
||||||
upperBounds: List<String> = listOf("kotlin/Any")
|
upperBounds: List<String> = listOf("kotlin/Any")
|
||||||
) = CirTypeParameterFactory.create(
|
) = CirTypeParameter.create(
|
||||||
annotations = emptyList(),
|
annotations = emptyList(),
|
||||||
name = CirName.create(name),
|
name = CirName.create(name),
|
||||||
isReified = isReified,
|
isReified = isReified,
|
||||||
|
|||||||
Reference in New Issue
Block a user