void (Set<UsageInfo> usages, MultiMap<PsiElement, @DialogMessage String> conflictDescriptions) { PsiMethod method = myChangeInfo.getMethod(); PsiModifierList modifierList = (PsiModifierList)method.getModifierList().copy(); String visibility = myChangeInfo.getNewVisibility(); VisibilityUtil.setVisibility(modifierList, visibility); searchForHierarchyConflicts(method, conflictDescriptions, visibility); boolean propagateVisibility = myChangeInfo instanceof JavaChangeInfoImpl && ((JavaChangeInfoImpl)myChangeInfo).propagateVisibility; for (Iterator<UsageInfo> iterator = usages.iterator(); iterator.hasNext();) { UsageInfo usageInfo = iterator.next(); PsiElement element = usageInfo.getElement(); PsiReference reference = usageInfo.getReference(); if (!propagateVisibility && reference != null && !method.equals(reference.resolve())) continue; if (element != null) { if (element instanceof PsiQualifiedReference) { PsiClass accessObjectClass = null; PsiElement qualifier = ((PsiQualifiedReference)element).getQualifier(); if (qualifier instanceof PsiExpression) { accessObjectClass = (PsiClass)PsiUtil.getAccessObjectClass((PsiExpression)qualifier).getElement(); } if (!JavaPsiFacade.getInstance(element.getProject()).getResolveHelper() .isAccessible(method, modifierList, element, accessObjectClass, null)) { String message = RefactoringBundle.message("0.with.1.visibility.is.not.accessible.from.2", RefactoringUIUtil.getDescription(method, true), VisibilityUtil.toPresentableText(visibility), RefactoringUIUtil.getDescription(ConflictsUtil.getContainer(element), true)); conflictDescriptions.putValue(method, message); if (!needToChangeCalls()) { iterator.remove(); } } } } } }