Minor. Pull user-data related things to CallableDescriptor

Currently, we assume user data for all non-FunctionDescriptor
declarations is empty
This commit is contained in:
Denis Zharkov
2018-08-30 12:47:42 +03:00
parent c1cc722ac4
commit 9cb8a35275
19 changed files with 52 additions and 25 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.serialization.deserialization
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.TypeTable
@@ -26,7 +27,7 @@ interface ContractDeserializer {
ownerFunction: FunctionDescriptor,
typeTable: TypeTable,
typeDeserializer: TypeDeserializer
): Pair<FunctionDescriptor.UserDataKey<*>, ContractProvider>?
): Pair<CallableDescriptor.UserDataKey<*>, ContractProvider>?
companion object {
val DEFAULT = object : ContractDeserializer {
@@ -35,7 +36,7 @@ interface ContractDeserializer {
ownerFunction: FunctionDescriptor,
typeTable: TypeTable,
typeDeserializer: TypeDeserializer
): Pair<FunctionDescriptor.UserDataKey<*>, Nothing>? = null
): Pair<CallableDescriptor.UserDataKey<*>, Nothing>? = null
}
}
}
@@ -179,7 +179,7 @@ class MemberDeserializer(private val c: DeserializationContext) {
unsubstitutedReturnType: KotlinType?,
modality: Modality?,
visibility: Visibility,
userDataMap: Map<out FunctionDescriptor.UserDataKey<*>, *>,
userDataMap: Map<out CallableDescriptor.UserDataKey<*>, *>,
isSuspend: Boolean
) {
initialize(
@@ -284,7 +284,7 @@ class MemberDeserializer(private val c: DeserializationContext) {
local.typeDeserializer.type(proto.returnType(c.typeTable)),
ProtoEnumFlags.modality(Flags.MODALITY.get(flags)),
ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
emptyMap<FunctionDescriptor.UserDataKey<*>, Any?>(),
emptyMap<CallableDescriptor.UserDataKey<*>, Any?>(),
Flags.IS_SUSPEND.get(flags)
)
function.isOperator = Flags.IS_OPERATOR.get(flags)
@@ -83,7 +83,7 @@ class DeserializedSimpleFunctionDescriptor(
unsubstitutedReturnType: KotlinType?,
modality: Modality?,
visibility: Visibility,
userDataMap: Map<out FunctionDescriptor.UserDataKey<*>, *>,
userDataMap: Map<out CallableDescriptor.UserDataKey<*>, *>,
isExperimentalCoroutineInReleaseEnvironment: DeserializedMemberDescriptor.CoroutinesCompatibilityMode
): SimpleFunctionDescriptorImpl {
return super.initialize(