From 49e9c47071543ac500edfcb87fdf0c86885950c7 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 10 Dec 2021 17:40:23 +0100 Subject: [PATCH] Move DynamicTypeDeserializer.id from IR module to common module So, it can be used from cls-psi-stub-builder module --- .../serialization/metadata/DynamicTypeDeserializer.kt | 3 ++- .../metadata/KlibMetadataSerializerExtension.kt | 3 ++- .../kotlin/psi/stubs/builder/TypeClsStubBuilder.kt | 4 ++-- .../deserialization/DynamicTypeDeserializerId.kt | 8 ++++++++ .../js/KotlinJavascriptSerializerExtension.kt | 3 ++- .../kotlin/commonizer/metadata/CirSerializers.kt | 3 ++- 6 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/DynamicTypeDeserializerId.kt diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/DynamicTypeDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/DynamicTypeDeserializer.kt index e1bcd8810b1..bc4ae1964ba 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/DynamicTypeDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/DynamicTypeDeserializer.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.backend.common.serialization.metadata import org.jetbrains.kotlin.metadata.ProtoBuf +import org.jetbrains.kotlin.serialization.deserialization.DYNAMIC_TYPE_DESERIALIZER_ID import org.jetbrains.kotlin.serialization.deserialization.FlexibleTypeDeserializer import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.types.KotlinType @@ -15,7 +16,7 @@ import org.jetbrains.kotlin.types.createDynamicType import org.jetbrains.kotlin.types.typeUtil.builtIns object DynamicTypeDeserializer : FlexibleTypeDeserializer { - const val id = "kotlin.DynamicType" + const val id = DYNAMIC_TYPE_DESERIALIZER_ID override fun create(proto: ProtoBuf.Type, flexibleId: String, lowerBound: SimpleType, upperBound: SimpleType): KotlinType { if (flexibleId != id) return ErrorUtils.createErrorType("Unexpected id: $flexibleId. ($lowerBound..$upperBound)") diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializerExtension.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializerExtension.kt index f20d3c21002..298b3719b58 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializerExtension.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializerExtension.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.resolve.source.getPsi import org.jetbrains.kotlin.serialization.DescriptorSerializer import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase import org.jetbrains.kotlin.serialization.StringTableImpl +import org.jetbrains.kotlin.serialization.deserialization.DYNAMIC_TYPE_DESERIALIZER_ID import org.jetbrains.kotlin.types.FlexibleType import org.jetbrains.kotlin.types.KotlinType @@ -37,7 +38,7 @@ class KlibMetadataSerializerExtension( } override fun serializeFlexibleType(flexibleType: FlexibleType, lowerProto: ProtoBuf.Type.Builder, upperProto: ProtoBuf.Type.Builder) { - lowerProto.flexibleTypeCapabilitiesId = stringTable.getStringIndex(DynamicTypeDeserializer.id) + lowerProto.flexibleTypeCapabilitiesId = stringTable.getStringIndex(DYNAMIC_TYPE_DESERIALIZER_ID) } override fun serializeErrorType(type: KotlinType, builder: ProtoBuf.Type.Builder) { diff --git a/compiler/psi/cls-psi-stub-builder/src/org/jetbrains/kotlin/psi/stubs/builder/TypeClsStubBuilder.kt b/compiler/psi/cls-psi-stub-builder/src/org/jetbrains/kotlin/psi/stubs/builder/TypeClsStubBuilder.kt index 7c6b96db24d..97da5b14908 100644 --- a/compiler/psi/cls-psi-stub-builder/src/org/jetbrains/kotlin/psi/stubs/builder/TypeClsStubBuilder.kt +++ b/compiler/psi/cls-psi-stub-builder/src/org/jetbrains/kotlin/psi/stubs/builder/TypeClsStubBuilder.kt @@ -21,10 +21,10 @@ import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes import org.jetbrains.kotlin.psi.stubs.impl.* +import org.jetbrains.kotlin.serialization.deserialization.DYNAMIC_TYPE_DESERIALIZER_ID import org.jetbrains.kotlin.serialization.deserialization.ProtoContainer import org.jetbrains.kotlin.serialization.deserialization.getClassId import org.jetbrains.kotlin.serialization.deserialization.getName -import org.jetbrains.kotlin.serialization.js.DynamicTypeDeserializer import org.jetbrains.kotlin.utils.doNothing import java.util.* @@ -79,7 +79,7 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) { if (type.hasFlexibleTypeCapabilitiesId()) { val id = c.nameResolver.getString(type.flexibleTypeCapabilitiesId) - if (id == DynamicTypeDeserializer.id) { + if (id == DYNAMIC_TYPE_DESERIALIZER_ID) { KotlinPlaceHolderStubImpl(nullableTypeParent(parent, type), KtStubElementTypes.DYNAMIC_TYPE) return } diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/DynamicTypeDeserializerId.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/DynamicTypeDeserializerId.kt new file mode 100644 index 00000000000..d37497cb2df --- /dev/null +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/DynamicTypeDeserializerId.kt @@ -0,0 +1,8 @@ +/* + * Copyright 2010-2021 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.serialization.deserialization + +const val DYNAMIC_TYPE_DESERIALIZER_ID = "kotlin.DynamicType" diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt index 76eea338dbc..3a772113334 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.resolve.source.PsiSourceFile import org.jetbrains.kotlin.serialization.ApproximatingStringTable import org.jetbrains.kotlin.serialization.DescriptorSerializer import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase +import org.jetbrains.kotlin.serialization.deserialization.DYNAMIC_TYPE_DESERIALIZER_ID import org.jetbrains.kotlin.types.FlexibleType class KotlinJavascriptSerializerExtension( @@ -39,7 +40,7 @@ class KotlinJavascriptSerializerExtension( override val stringTable = ApproximatingStringTable() override fun serializeFlexibleType(flexibleType: FlexibleType, lowerProto: ProtoBuf.Type.Builder, upperProto: ProtoBuf.Type.Builder) { - lowerProto.flexibleTypeCapabilitiesId = stringTable.getStringIndex(DynamicTypeDeserializer.id) + lowerProto.flexibleTypeCapabilitiesId = stringTable.getStringIndex(DYNAMIC_TYPE_DESERIALIZER_ID) } override fun serializeClass( diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirSerializers.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirSerializers.kt index 89147db9f0a..ee2adf680d5 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirSerializers.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirSerializers.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.commonizer.utils.DEFAULT_SETTER_VALUE_NAME import org.jetbrains.kotlin.commonizer.utils.SPECIAL_CLASS_WITHOUT_SUPERTYPES_CLASS_NAMES import org.jetbrains.kotlin.commonizer.utils.compactMap import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor +import org.jetbrains.kotlin.serialization.deserialization.DYNAMIC_TYPE_DESERIALIZER_ID import org.jetbrains.kotlin.types.Variance internal fun CirModule.serializeModule( @@ -279,7 +280,7 @@ private fun CirType.serializeType( lowerBound.serializeType(context, expansion).also { it.flexibleTypeUpperBound = KmFlexibleTypeUpperBound( type = upperBound.serializeType(context, expansion), - typeFlexibilityId = DynamicTypeDeserializer.id + typeFlexibilityId = DYNAMIC_TYPE_DESERIALIZER_ID ) } }