incompatible types tooltip: append reason when provided for single arg mismatch

GitOrigin-RevId: 7be63b20a982cd0fb365e022278df6a5c02153f3
This commit is contained in:
Anna.Kozlova
2019-10-10 07:01:11 +00:00
committed by intellij-monorepo-bot
parent a5ac4d9fbd
commit 0edaac849d
@@ -527,9 +527,14 @@ public class HighlightMethodUtil {
boolean varargs = candidateInfo.getApplicabilityLevel() == MethodCandidateInfo.ApplicabilityLevel.VARARGS;
int idx = ArrayUtil.find(expressions, wrongArg);
PsiType paramType = candidateInfo.getSubstitutor().substitute(PsiTypesUtil.getParameterType(parameters, idx, varargs));
String errorMessage = candidateInfo.getInferenceErrorMessage();
String reason = errorMessage != null ? "<table><tr><td style='padding-left: 4px; padding-top: 10;'>" +
"reason: " + XmlStringUtil.escapeString(errorMessage).replaceAll("\n", "<br/>") +
"</td></tr></table>"
: "";
return HighlightUtil.createIncompatibleTypesTooltip(paramType, argType,
(lRawType, lTypeArguments, rRawType, rTypeArguments) ->
JavaErrorMessages.message("incompatible.types.html.tooltip", lRawType, lTypeArguments, rRawType, rTypeArguments, "", "#" + ColorUtil.toHex(UIUtil.getContextHelpForeground())));
JavaErrorMessages.message("incompatible.types.html.tooltip", lRawType, lTypeArguments, rRawType, rTypeArguments, reason, "#" + ColorUtil.toHex(UIUtil.getContextHelpForeground())));
}
return null;
}