Improve exception message to detect actual problem

This relates to EA-120082, EA-119637
This commit is contained in:
Mikhail Zarechenskiy
2018-06-27 18:03:45 +03:00
parent 2e88f5c47d
commit 59567c8012
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor;
import org.jetbrains.kotlin.psi.Call;
import org.jetbrains.kotlin.psi.ValueArgument;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.resolve.DelegatingBindingTrace;
import org.jetbrains.kotlin.resolve.calls.callResolverUtil.CallResolverUtilKt;
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystem;
@@ -196,7 +197,14 @@ public class ResolvedCallImpl<D extends CallableDescriptor> implements MutableRe
@Override
public void setResultingSubstitutor(@NotNull TypeSubstitutor substitutor) {
resultingDescriptor = (D) candidateDescriptor.substitute(substitutor);
assert resultingDescriptor != null : candidateDescriptor;
//noinspection ConstantConditions
if (resultingDescriptor == null) {
throw new AssertionError(
"resultingDescriptor shouldn't be null:\n" +
"candidateDescriptor: " + DescriptorRenderer.COMPACT_WITH_SHORT_TYPES.render(candidateDescriptor) + "\n" +
"substitution: " + substitutor.getSubstitution()
);
}
for (TypeParameterDescriptor typeParameter : candidateDescriptor.getTypeParameters()) {
TypeProjection typeArgumentProjection = substitutor.getSubstitution().get(typeParameter.getDefaultType());