Take ReceiverParameterDescriptor in FunctionDescriptorImpl.initialize
Instead of just KotlinType. This will allow to pass annotations on the receiver at call sites
This commit is contained in:
+7
-1
@@ -22,7 +22,9 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.DescriptorFactory
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.setSingleOverridden
|
||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||
@@ -66,7 +68,11 @@ fun createSynthesizedInvokes(functions: Collection<FunctionDescriptor>): Collect
|
||||
|
||||
private fun createSynthesizedFunctionWithFirstParameterAsReceiver(descriptor: FunctionDescriptor) =
|
||||
descriptor.original.newCopyBuilder().apply {
|
||||
setExtensionReceiverType(descriptor.original.valueParameters.first().type)
|
||||
setExtensionReceiverParameter(
|
||||
DescriptorFactory.createExtensionReceiverParameterForCallable(
|
||||
descriptor.original, descriptor.original.valueParameters.first().type, Annotations.EMPTY
|
||||
)
|
||||
)
|
||||
setValueParameters(
|
||||
descriptor.original.valueParameters
|
||||
.drop(1)
|
||||
|
||||
Reference in New Issue
Block a user