Supported obtaining function type parameter names from KotlinType
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.codegen;
|
||||
|
||||
import kotlin.collections.CollectionsKt;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.coroutines.CoroutineUtilKt;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
@@ -101,11 +103,18 @@ public class JvmRuntimeTypes {
|
||||
ReceiverParameterDescriptor receiverParameter = descriptor.getExtensionReceiverParameter();
|
||||
|
||||
//noinspection ConstantConditions
|
||||
List<ValueParameterDescriptor> parameters = descriptor.getValueParameters();
|
||||
KotlinType functionType = FunctionTypeResolveUtilsKt.createFunctionType(
|
||||
DescriptorUtilsKt.getBuiltIns(descriptor),
|
||||
Annotations.Companion.getEMPTY(),
|
||||
receiverParameter == null ? null : receiverParameter.getType(),
|
||||
ExpressionTypingUtils.getValueParametersTypes(descriptor.getValueParameters()),
|
||||
ExpressionTypingUtils.getValueParametersTypes(parameters),
|
||||
CollectionsKt.map(parameters, new Function1<ValueParameterDescriptor, Name>() {
|
||||
@Override
|
||||
public Name invoke(ValueParameterDescriptor descriptor) {
|
||||
return descriptor.getName();
|
||||
}
|
||||
}),
|
||||
descriptor.getReturnType()
|
||||
);
|
||||
|
||||
@@ -128,11 +137,18 @@ public class JvmRuntimeTypes {
|
||||
extensionReceiver != null ? extensionReceiver.getType() : dispatchReceiver != null ? dispatchReceiver.getType() : null;
|
||||
|
||||
//noinspection ConstantConditions
|
||||
List<ValueParameterDescriptor> parameters = descriptor.getValueParameters();
|
||||
KotlinType functionType = FunctionTypeResolveUtilsKt.createFunctionType(
|
||||
DescriptorUtilsKt.getBuiltIns(descriptor),
|
||||
Annotations.Companion.getEMPTY(),
|
||||
isBound ? null : receiverType,
|
||||
ExpressionTypingUtils.getValueParametersTypes(descriptor.getValueParameters()),
|
||||
ExpressionTypingUtils.getValueParametersTypes(parameters),
|
||||
CollectionsKt.map(parameters, new Function1<ValueParameterDescriptor, Name>() {
|
||||
@Override
|
||||
public Name invoke(ValueParameterDescriptor descriptor) {
|
||||
return descriptor.getName();
|
||||
}
|
||||
}),
|
||||
descriptor.getReturnType()
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user