diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/approximationKeys.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/approximationKeys.kt index 3dd8d76ac93..40b19d015b4 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/approximationKeys.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/approximationKeys.kt @@ -10,7 +10,7 @@ import kotlinx.metadata.klib.annotations import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeSignature import org.jetbrains.kotlin.descriptors.commonizer.core.Commonizer -import org.jetbrains.kotlin.descriptors.commonizer.metadata.TypeParameterResolver +import org.jetbrains.kotlin.descriptors.commonizer.metadata.CirTypeParameterResolver import org.jetbrains.kotlin.descriptors.commonizer.utils.appendHashCode import org.jetbrains.kotlin.descriptors.commonizer.utils.computeSignature import org.jetbrains.kotlin.descriptors.commonizer.utils.hashCode @@ -21,7 +21,7 @@ data class PropertyApproximationKey( val name: CirName, val extensionReceiverParameterType: CirTypeSignature? ) { - constructor(property: KmProperty, typeParameterResolver: TypeParameterResolver) : this( + constructor(property: KmProperty, typeParameterResolver: CirTypeParameterResolver) : this( CirName.create(property.name), property.receiverParameterType?.computeSignature(typeParameterResolver) ) @@ -34,7 +34,7 @@ data class FunctionApproximationKey( private val additionalValueParametersNamesHash: Int, val extensionReceiverParameterType: CirTypeSignature? ) { - constructor(function: KmFunction, typeParameterResolver: TypeParameterResolver) : this( + constructor(function: KmFunction, typeParameterResolver: CirTypeParameterResolver) : this( CirName.create(function.name), function.valueParameters.computeSignatures(typeParameterResolver), additionalValueParameterNamesHash(function.annotations, function.valueParameters), @@ -62,7 +62,7 @@ data class ConstructorApproximationKey( val valueParametersTypes: Array, private val additionalValueParametersNamesHash: Int ) { - constructor(constructor: KmConstructor, typeParameterResolver: TypeParameterResolver) : this( + constructor(constructor: KmConstructor, typeParameterResolver: CirTypeParameterResolver) : this( constructor.valueParameters.computeSignatures(typeParameterResolver), additionalValueParameterNamesHash(constructor.annotations, constructor.valueParameters) ) @@ -80,7 +80,7 @@ data class ConstructorApproximationKey( } @Suppress("NOTHING_TO_INLINE") -private inline fun List.computeSignatures(typeParameterResolver: TypeParameterResolver): Array = +private inline fun List.computeSignatures(typeParameterResolver: CirTypeParameterResolver): Array = if (isEmpty()) emptyArray() else Array(size) { index -> this[index].type?.computeSignature(typeParameterResolver).orEmpty() } private fun additionalValueParameterNamesHash(annotations: List, valueParameters: List): Int { diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/TypeParameterResolver.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/CirTypeParameterResolver.kt similarity index 90% rename from native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/TypeParameterResolver.kt rename to native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/CirTypeParameterResolver.kt index cf4a59a97e0..15d897b5fb5 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/TypeParameterResolver.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/CirTypeParameterResolver.kt @@ -7,6 +7,6 @@ package org.jetbrains.kotlin.descriptors.commonizer.metadata import kotlinx.metadata.KmTypeParameter -interface TypeParameterResolver { +interface CirTypeParameterResolver { fun resolveTypeParameter(id: Int): KmTypeParameter? } diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/CirTypeResolver.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/CirTypeResolver.kt index 029cecc48aa..07304d67367 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/CirTypeResolver.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/CirTypeResolver.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirProvidedClassif typealias TypeParameterId = Int typealias TypeParameterIndex = Int -abstract class CirTypeResolver : TypeParameterResolver { +abstract class CirTypeResolver : CirTypeParameterResolver { abstract val providedClassifiers: CirProvidedClassifiers protected abstract val typeParameterIndexOffset: Int diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/utils/type.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/utils/type.kt index 508325e8206..829f121b0ef 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/utils/type.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/utils/type.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.utils import gnu.trove.TIntHashSet import kotlinx.metadata.* import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeSignature -import org.jetbrains.kotlin.descriptors.commonizer.metadata.TypeParameterResolver +import org.jetbrains.kotlin.descriptors.commonizer.metadata.CirTypeParameterResolver internal inline val KmTypeParameter.filteredUpperBounds: List get() = upperBounds.takeUnless { it.singleOrNull()?.isNullableAny == true } ?: emptyList() @@ -23,7 +23,7 @@ private inline val KmType.isAny: Boolean get() = (classifier as? KmClassifier.Class)?.name == ANY_CLASS_FULL_NAME && !Flag.Type.IS_NULLABLE(flags) -internal fun KmType.computeSignature(typeParameterResolver: TypeParameterResolver): CirTypeSignature { +internal fun KmType.computeSignature(typeParameterResolver: CirTypeParameterResolver): CirTypeSignature { // use of interner saves up to 95% of duplicates return typeSignatureInterner.intern( buildString { @@ -38,7 +38,7 @@ internal fun KmType.computeSignature(typeParameterResolver: TypeParameterResolve private fun StringBuilder.buildTypeSignature( type: KmType, - typeParameterResolver: TypeParameterResolver, + typeParameterResolver: CirTypeParameterResolver, exploredTypeParameters: TIntHashSet ) { when (val classifier = type.classifier) {