From baef4f304d0de915da5601104af84e1874f64fe4 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 3 Aug 2011 12:47:14 +0400 Subject: [PATCH] change signature: check visibility conflicts with non-java references (IDEA-72772) --- .../ChangeSignatureProcessor.java | 17 +++++++++++------ .../JavaChangeSignatureUsageProcessor.java | 10 +++++----- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureProcessor.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureProcessor.java index cde29792ff2d..757184f9f851 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureProcessor.java @@ -148,12 +148,17 @@ public class ChangeSignatureProcessor extends ChangeSignatureProcessorBase { RenameUtil.addConflictDescriptions(usagesIn, conflictDescriptions); Set usagesSet = new HashSet(Arrays.asList(usagesIn)); RenameUtil.removeConflictUsages(usagesSet); - if (myPrepareSuccessfulSwingThreadCallback != null && !conflictDescriptions.isEmpty()) { - ConflictsDialog dialog = prepareConflictsDialog(conflictDescriptions, usagesIn); - dialog.show(); - if (!dialog.isOK()) { - if (dialog.isShowConflicts()) prepareSuccessful(); - return false; + if (!conflictDescriptions.isEmpty()) { + if (ApplicationManager.getApplication().isUnitTestMode()) { + throw new ConflictsInTestsException(conflictDescriptions.values()); + } + if (myPrepareSuccessfulSwingThreadCallback != null) { + ConflictsDialog dialog = prepareConflictsDialog(conflictDescriptions, usagesIn); + dialog.show(); + if (!dialog.isOK()) { + if (dialog.isShowConflicts()) prepareSuccessful(); + return false; + } } } diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java index 6f657eecc649..5da444654889 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java @@ -895,12 +895,12 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr for (Iterator iterator = usages.iterator(); iterator.hasNext();) { UsageInfo usageInfo = iterator.next(); PsiElement element = usageInfo.getElement(); - if (element != null && StdLanguages.JAVA.equals(element.getLanguage())) { - if (element instanceof PsiReferenceExpression) { + if (element != null) { + if (element instanceof PsiQualifiedReference) { PsiClass accessObjectClass = null; - PsiExpression qualifier = ((PsiReferenceExpression)element).getQualifierExpression(); - if (qualifier != null) { - accessObjectClass = (PsiClass)PsiUtil.getAccessObjectClass(qualifier).getElement(); + PsiElement qualifier = ((PsiQualifiedReference)element).getQualifier(); + if (qualifier instanceof PsiExpression) { + accessObjectClass = (PsiClass)PsiUtil.getAccessObjectClass((PsiExpression)qualifier).getElement(); } if (!JavaPsiFacade.getInstance(element.getProject()).getResolveHelper()