diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java index 701ac4d8139..504920ee7c7 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java @@ -213,6 +213,14 @@ public class ResolvedCallImpl implements MutableRe } } + if (dispatchReceiver instanceof ExpressionReceiver) { + dispatchReceiver = dispatchReceiver.replaceType(substitutor.safeSubstitute(dispatchReceiver.getType(), Variance.IN_VARIANCE)); + } + if (extensionReceiver instanceof ExtensionReceiver) { + extensionReceiver = + extensionReceiver.replaceType(substitutor.safeSubstitute(extensionReceiver.getType(), Variance.IN_VARIANCE)); + } + if (candidateDescriptor.getValueParameters().isEmpty()) return; List substitutedParameters = resultingDescriptor.getValueParameters(); @@ -239,14 +247,6 @@ public class ResolvedCallImpl implements MutableRe assert substitutedVersion != null : valueParameterDescriptor; argumentToParameterMap.put(entry.getKey(), argumentMatch.replaceValueParameter(substitutedVersion)); } - - if (dispatchReceiver instanceof ExpressionReceiver) { - dispatchReceiver = dispatchReceiver.replaceType(substitutor.safeSubstitute(dispatchReceiver.getType(), Variance.IN_VARIANCE)); - } - if (extensionReceiver instanceof ExtensionReceiver) { - extensionReceiver = - extensionReceiver.replaceType(substitutor.safeSubstitute(extensionReceiver.getType(), Variance.IN_VARIANCE)); - } } @Override