From dae1f4c05d20f46030e9b8b3d31b466a15d3459e Mon Sep 17 00:00:00 2001 From: Victor Petukhov Date: Fri, 12 Feb 2021 13:06:55 +0300 Subject: [PATCH] Remove redundant extension receiver substitution during lambda's completion --- .../calls/tower/ResolvedAtomCompleter.kt | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/ResolvedAtomCompleter.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/ResolvedAtomCompleter.kt index d43f8c8a041..5a9b75285ff 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/ResolvedAtomCompleter.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/ResolvedAtomCompleter.kt @@ -324,24 +324,6 @@ class ResolvedAtomCompleter( ) trace.recordType(ktArgumentExpression, substitutedFunctionalType) - - // Mainly this is needed for builder-like inference, when we have type `SomeType.() -> Unit` and now we want to update those K, V - val receiver = functionDescriptor.extensionReceiverParameter - if (receiver != null) { - require(receiver is ReceiverParameterDescriptorImpl) { - "Extension receiver for anonymous function ($receiver) should be ReceiverParameterDescriptorImpl" - } - - val valueType = receiver.value.type.unwrap() - val newValueType = resultSubstitutor.safeSubstitute(valueType) - - if (valueType !== newValueType) { - val newReceiverValue = receiver.value.replaceType(newValueType) - functionDescriptor.setExtensionReceiverParameter( - ReceiverParameterDescriptorImpl(receiver.containingDeclaration, newReceiverValue, receiver.annotations) - ) - } - } } private fun NewTypeSubstitutor.toOldSubstitution(): TypeSubstitution = object : TypeSubstitution() {