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:
+1
-1
@@ -144,7 +144,7 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
|
||||
if (effectiveSignature.receiverType != null)
|
||||
mapOf(JavaMethodDescriptor.ORIGINAL_VALUE_PARAMETER_FOR_EXTENSION_RECEIVER to valueParameters.descriptors.first())
|
||||
else
|
||||
emptyMap<FunctionDescriptor.UserDataKey<ValueParameterDescriptor>, ValueParameterDescriptor>()
|
||||
emptyMap<CallableDescriptor.UserDataKey<ValueParameterDescriptor>, ValueParameterDescriptor>()
|
||||
)
|
||||
|
||||
functionDescriptorImpl.setParameterNamesStatus(effectiveSignature.hasStableParameterNames, valueParameters.hasSynthesizedNames)
|
||||
|
||||
@@ -64,4 +64,10 @@ public interface CallableDescriptor extends DeclarationDescriptorWithVisibility,
|
||||
|
||||
@NotNull
|
||||
Collection<? extends CallableDescriptor> getOverriddenDescriptors();
|
||||
|
||||
interface UserDataKey<V> {}
|
||||
|
||||
// TODO: pull up userdata related members to DeclarationDescriptor and use more efficient implementation (e.g. THashMap)
|
||||
@Nullable
|
||||
<V> V getUserData(UserDataKey<V> key);
|
||||
}
|
||||
|
||||
@@ -68,12 +68,6 @@ public interface FunctionDescriptor extends CallableMemberDescriptor {
|
||||
|
||||
boolean isSuspend();
|
||||
|
||||
interface UserDataKey<V> {}
|
||||
|
||||
// TODO: pull up userdata related members to DeclarationDescriptor and use more efficient implementation (e.g. THashMap)
|
||||
@Nullable
|
||||
<V> V getUserData(UserDataKey<V> key);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
CopyBuilder<? extends FunctionDescriptor> newCopyBuilder();
|
||||
|
||||
+6
@@ -135,4 +135,10 @@ public abstract class AbstractReceiverParameterDescriptor extends DeclarationDes
|
||||
public SourceElement getSource() {
|
||||
return SourceElement.NO_SOURCE;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public <V> V getUserData(UserDataKey<V> key) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -546,4 +546,10 @@ public class PropertyDescriptorImpl extends VariableDescriptorWithInitializerImp
|
||||
.setCopyOverrides(copyOverrides)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public <V> V getUserData(UserDataKey<V> key) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,4 +107,10 @@ public abstract class VariableDescriptorImpl extends DeclarationDescriptorNonRoo
|
||||
public boolean isConst() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public <V> V getUserData(UserDataKey<V> key) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-2
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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)
|
||||
|
||||
+1
-1
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user