diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/CallableReferenceResolution.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/CallableReferenceResolution.kt index f8f7e3a15a0..f7a6430aead 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/CallableReferenceResolution.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/CallableReferenceResolution.kt @@ -334,7 +334,11 @@ class CallableReferencesCandidateFactory( // lower(Unit!) = Unit val returnExpectedType = inputOutputTypes.outputType - val coercion = if (returnExpectedType.isUnit()) CoercionStrategy.COERCION_TO_UNIT else CoercionStrategy.NO_COERCION + val coercion = + if (returnExpectedType.isUnit() && descriptor.returnType?.isUnit() == false) + CoercionStrategy.COERCION_TO_UNIT + else + CoercionStrategy.NO_COERCION val adaptedArguments = if (expectedType != null && ReflectionTypes.isBaseTypeForNumberedReferenceTypes(expectedType))