Fix exception when expected type is subtype of a function type
#KT-28984 Fixed #EA-132850 Fixed
This commit is contained in:
+1
-6
@@ -350,7 +350,7 @@ fun extractInputOutputTypesFromCallableReferenceExpectedType(expectedType: Unwra
|
||||
expectedType.isFunctionType ->
|
||||
extractInputOutputTypesFromFunctionType(expectedType)
|
||||
|
||||
expectedType.isBaseTypeForNumberedReferenceTypes() ->
|
||||
ReflectionTypes.isBaseTypeForNumberedReferenceTypes(expectedType) ->
|
||||
InputOutputTypes(emptyList(), expectedType.arguments.single().type.unwrap())
|
||||
|
||||
ReflectionTypes.isNumberedKFunctionOrKSuspendFunction(expectedType) -> {
|
||||
@@ -367,11 +367,6 @@ fun extractInputOutputTypesFromCallableReferenceExpectedType(expectedType: Unwra
|
||||
}
|
||||
}
|
||||
|
||||
private fun UnwrappedType.isBaseTypeForNumberedReferenceTypes(): Boolean =
|
||||
ReflectionTypes.hasKPropertyTypeFqName(this) ||
|
||||
ReflectionTypes.hasKMutablePropertyTypeFqName(this) ||
|
||||
ReflectionTypes.hasKCallableTypeFqName(this)
|
||||
|
||||
private fun extractInputOutputTypesFromFunctionType(functionType: UnwrappedType): InputOutputTypes {
|
||||
val receiver = functionType.getReceiverTypeFromFunctionType()?.unwrap()
|
||||
val parameters = functionType.getValueParameterTypesFromFunctionType().map { it.type.unwrap() }
|
||||
|
||||
Reference in New Issue
Block a user