String (PsiMethodCallExpression expr) { final PsiResolveHelper rh = JavaPsiFacade.getInstance(expr.getProject()).getResolveHelper(); final CandidateInfo[] candidates = rh.getReferencedMethodCandidates(expr, true); final String text = expr.getText(); if (candidates.length > 0) { if (candidates.length == 1) { PsiElement element = candidates[0].getElement(); if (element instanceof PsiMethod) return generateDoc(element, null); } final StringBuilder sb = new StringBuilder(); @NotNull List<? extends CandidateInfo> conflicts = new ArrayList<>(Arrays.asList(candidates)); JavaMethodsConflictResolver.filterSupers(conflicts, expr.getContainingFile(), null); for (final CandidateInfo candidate : conflicts) { final PsiElement element = candidate.getElement(); if (!(element instanceof PsiMethod)) { continue; } final String str = PsiFormatUtil.formatMethod((PsiMethod)element, candidate.getSubstitutor(), PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_TYPE | PsiFormatUtilBase.SHOW_PARAMETERS, PsiFormatUtilBase.SHOW_TYPE); createElementLink(sb, element, StringUtil.escapeXmlEntities(str)); } return CodeInsightBundle.message("javadoc.candidates", text, sb); } return JavaBundle.message("javadoc.candidates.not.found", text); }