Do substitution for receivers of old (by passing though OI) callable references properly, with avoiding premature returning from the method
This commit is contained in:
+8
-8
@@ -213,6 +213,14 @@ public class ResolvedCallImpl<D extends CallableDescriptor> 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<ValueParameterDescriptor> substitutedParameters = resultingDescriptor.getValueParameters();
|
||||
@@ -239,14 +247,6 @@ public class ResolvedCallImpl<D extends CallableDescriptor> 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
|
||||
|
||||
Reference in New Issue
Block a user