Move DynamicTypeDeserializer.id from IR module to common module
So, it can be used from cls-psi-stub-builder module
This commit is contained in:
+2
-1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.backend.common.serialization.metadata
|
package org.jetbrains.kotlin.backend.common.serialization.metadata
|
||||||
|
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
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.serialization.deserialization.FlexibleTypeDeserializer
|
||||||
import org.jetbrains.kotlin.types.ErrorUtils
|
import org.jetbrains.kotlin.types.ErrorUtils
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.types.createDynamicType
|
|||||||
import org.jetbrains.kotlin.types.typeUtil.builtIns
|
import org.jetbrains.kotlin.types.typeUtil.builtIns
|
||||||
|
|
||||||
object DynamicTypeDeserializer : FlexibleTypeDeserializer {
|
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 {
|
override fun create(proto: ProtoBuf.Type, flexibleId: String, lowerBound: SimpleType, upperBound: SimpleType): KotlinType {
|
||||||
if (flexibleId != id) return ErrorUtils.createErrorType("Unexpected id: $flexibleId. ($lowerBound..$upperBound)")
|
if (flexibleId != id) return ErrorUtils.createErrorType("Unexpected id: $flexibleId. ($lowerBound..$upperBound)")
|
||||||
|
|||||||
+2
-1
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.resolve.source.getPsi
|
|||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
||||||
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
|
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
|
||||||
import org.jetbrains.kotlin.serialization.StringTableImpl
|
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.FlexibleType
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
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) {
|
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) {
|
override fun serializeErrorType(type: KotlinType, builder: ProtoBuf.Type.Builder) {
|
||||||
|
|||||||
+2
-2
@@ -21,10 +21,10 @@ import org.jetbrains.kotlin.psi.*
|
|||||||
import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub
|
import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub
|
||||||
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes
|
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes
|
||||||
import org.jetbrains.kotlin.psi.stubs.impl.*
|
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.ProtoContainer
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.getClassId
|
import org.jetbrains.kotlin.serialization.deserialization.getClassId
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.getName
|
import org.jetbrains.kotlin.serialization.deserialization.getName
|
||||||
import org.jetbrains.kotlin.serialization.js.DynamicTypeDeserializer
|
|
||||||
import org.jetbrains.kotlin.utils.doNothing
|
import org.jetbrains.kotlin.utils.doNothing
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) {
|
|||||||
if (type.hasFlexibleTypeCapabilitiesId()) {
|
if (type.hasFlexibleTypeCapabilitiesId()) {
|
||||||
val id = c.nameResolver.getString(type.flexibleTypeCapabilitiesId)
|
val id = c.nameResolver.getString(type.flexibleTypeCapabilitiesId)
|
||||||
|
|
||||||
if (id == DynamicTypeDeserializer.id) {
|
if (id == DYNAMIC_TYPE_DESERIALIZER_ID) {
|
||||||
KotlinPlaceHolderStubImpl<KtDynamicType>(nullableTypeParent(parent, type), KtStubElementTypes.DYNAMIC_TYPE)
|
KotlinPlaceHolderStubImpl<KtDynamicType>(nullableTypeParent(parent, type), KtStubElementTypes.DYNAMIC_TYPE)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -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"
|
||||||
+2
-1
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.resolve.source.PsiSourceFile
|
|||||||
import org.jetbrains.kotlin.serialization.ApproximatingStringTable
|
import org.jetbrains.kotlin.serialization.ApproximatingStringTable
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
||||||
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
|
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.DYNAMIC_TYPE_DESERIALIZER_ID
|
||||||
import org.jetbrains.kotlin.types.FlexibleType
|
import org.jetbrains.kotlin.types.FlexibleType
|
||||||
|
|
||||||
class KotlinJavascriptSerializerExtension(
|
class KotlinJavascriptSerializerExtension(
|
||||||
@@ -39,7 +40,7 @@ class KotlinJavascriptSerializerExtension(
|
|||||||
override val stringTable = ApproximatingStringTable()
|
override val stringTable = ApproximatingStringTable()
|
||||||
|
|
||||||
override fun serializeFlexibleType(flexibleType: FlexibleType, lowerProto: ProtoBuf.Type.Builder, upperProto: ProtoBuf.Type.Builder) {
|
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(
|
override fun serializeClass(
|
||||||
|
|||||||
@@ -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.SPECIAL_CLASS_WITHOUT_SUPERTYPES_CLASS_NAMES
|
||||||
import org.jetbrains.kotlin.commonizer.utils.compactMap
|
import org.jetbrains.kotlin.commonizer.utils.compactMap
|
||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.DYNAMIC_TYPE_DESERIALIZER_ID
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
internal fun CirModule.serializeModule(
|
internal fun CirModule.serializeModule(
|
||||||
@@ -279,7 +280,7 @@ private fun CirType.serializeType(
|
|||||||
lowerBound.serializeType(context, expansion).also {
|
lowerBound.serializeType(context, expansion).also {
|
||||||
it.flexibleTypeUpperBound = KmFlexibleTypeUpperBound(
|
it.flexibleTypeUpperBound = KmFlexibleTypeUpperBound(
|
||||||
type = upperBound.serializeType(context, expansion),
|
type = upperBound.serializeType(context, expansion),
|
||||||
typeFlexibilityId = DynamicTypeDeserializer.id
|
typeFlexibilityId = DYNAMIC_TYPE_DESERIALIZER_ID
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user