From 59567c80122697c98922315b28ab6b994b0f6830 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Wed, 27 Jun 2018 18:03:45 +0300 Subject: [PATCH] Improve exception message to detect actual problem This relates to EA-120082, EA-119637 --- .../kotlin/resolve/calls/model/ResolvedCallImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 17ffcb7f519..08e8c3c1e66 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 @@ -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 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());