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;
|
if (candidateDescriptor.getValueParameters().isEmpty()) return;
|
||||||
|
|
||||||
List<ValueParameterDescriptor> substitutedParameters = resultingDescriptor.getValueParameters();
|
List<ValueParameterDescriptor> substitutedParameters = resultingDescriptor.getValueParameters();
|
||||||
@@ -239,14 +247,6 @@ public class ResolvedCallImpl<D extends CallableDescriptor> implements MutableRe
|
|||||||
assert substitutedVersion != null : valueParameterDescriptor;
|
assert substitutedVersion != null : valueParameterDescriptor;
|
||||||
argumentToParameterMap.put(entry.getKey(), argumentMatch.replaceValueParameter(substitutedVersion));
|
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
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user