From 59f027e3e931e5e5b20457d0961a650bee783960 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Mon, 25 May 2020 09:52:32 +0300 Subject: [PATCH] [NI] Don't try performing any conversions on receivers --- .../kotlin/resolve/calls/components/ResolutionParts.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/ResolutionParts.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/ResolutionParts.kt index 712109b18e6..e133ab7a461 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/ResolutionParts.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/ResolutionParts.kt @@ -415,8 +415,9 @@ private fun KotlinResolutionCandidate.resolveKotlinArgument( ) { val candidateExpectedType = candidateParameter?.let { argument.getExpectedType(it, callComponents.languageVersionSettings) } + val isReceiver = receiverInfo.isReceiver val conversionDataBeforeSubtyping = - if (candidateParameter == null || candidateExpectedType == null) { + if (isReceiver || candidateParameter == null || candidateExpectedType == null) { null } else { TypeConversions.performCompositeConversionBeforeSubtyping( @@ -440,6 +441,7 @@ private fun KotlinResolutionCandidate.resolveKotlinArgument( if (candidateExpectedType == null || // Nothing to convert convertedExpectedType != null || // Type is already converted + isReceiver || // Receivers don't participate in conversions conversionDataBeforeSubtyping?.wasConversion == true || // We tried to convert type but failed conversionDataBeforeSubtyping?.conversionDefinitelyNotNeeded == true || csBuilder.hasContradiction