CandidateInfo (@NotNull List<CandidateInfo> conflicts) { if (conflicts.size() == 1) return conflicts.get(0); final Map<Object, CandidateInfo> uniqueItems = new HashMap<>(); for (CandidateInfo info : conflicts) { final PsiElement element = info.getElement(); Object key; if (info instanceof MethodCandidateInfo) { key = ((PsiMethod)element).getSignature(((MethodCandidateInfo)info).getSubstitutor(false)); } else { key = PsiUtilCore.getName(element); } if (!uniqueItems.containsKey(key)) { uniqueItems.put(key, info); } } if(uniqueItems.size() == 1) return uniqueItems.values().iterator().next(); return null; }