From 684dfb959cd14ef08137acc9ad813b45650307cb Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Sun, 31 May 2020 23:34:58 +0300 Subject: [PATCH] Don't write any COERCION_STRATEGY for Unit to Unit return types --- .../resolve/calls/components/CallableReferenceResolution.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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))