[PSI, FE] Support functional types
This commit is contained in:
committed by
TeamCityServer
parent
e53cee77a3
commit
e3f987459c
+1
-1
@@ -86,7 +86,7 @@ private fun preprocessLambdaArgument(
|
||||
|
||||
if (expectedType != null) {
|
||||
val lambdaType = createFunctionType(
|
||||
csBuilder.builtIns, Annotations.EMPTY, resolvedArgument.receiver,
|
||||
csBuilder.builtIns, Annotations.EMPTY, resolvedArgument.receiver, emptyList(), // TODO: Context receivers?
|
||||
resolvedArgument.parameters, null, resolvedArgument.returnType, resolvedArgument.isSuspend
|
||||
)
|
||||
csBuilder.addSubtypeConstraint(lambdaType, expectedType, ArgumentConstraintPositionImpl(argument))
|
||||
|
||||
+1
@@ -43,6 +43,7 @@ object SuspendTypeConversions : ParameterTypeConversion {
|
||||
candidate.callComponents.builtIns,
|
||||
expectedParameterType.annotations,
|
||||
expectedParameterType.getReceiverTypeFromFunctionType(),
|
||||
expectedParameterType.getContextReceiverTypesFromFunctionType(),
|
||||
expectedParameterType.getValueParameterTypesFromFunctionType().map { it.type },
|
||||
parameterNames = null,
|
||||
expectedParameterType.getReturnTypeFromFunctionType(),
|
||||
|
||||
+1
@@ -78,6 +78,7 @@ object UnitTypeConversions : ParameterTypeConversion {
|
||||
candidate.callComponents.builtIns,
|
||||
expectedParameterType.annotations,
|
||||
expectedParameterType.getReceiverTypeFromFunctionType(),
|
||||
expectedParameterType.getContextReceiverTypesFromFunctionType(),
|
||||
expectedParameterType.getValueParameterTypesFromFunctionType().map { it.type },
|
||||
parameterNames = null,
|
||||
candidate.callComponents.builtIns.nullableAnyType,
|
||||
|
||||
Reference in New Issue
Block a user