summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/refactoring
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-06-14 07:28:55 -0700
committerTor Norbye <tnorbye@google.com>2013-06-14 07:28:55 -0700
commitd9e4c285fa2c3c38c5b92cf30e77f27e243566a8 (patch)
tree354db2798801cc7730ba4a71ea9a151233309d3a /java/java-impl/src/com/intellij/refactoring
parent28d9ee094b1d352884aaf5b66b85b30335165c03 (diff)
downloadidea-d9e4c285fa2c3c38c5b92cf30e77f27e243566a8.tar.gz
Snapshot df6c5fa1206345df60a0c86fe8f67c5f7a6f478f from master branch of git://git.jetbrains.org/idea/community.git
Change-Id: I1d62dfd281ca361774653165ce8da9fb93d51005
Diffstat (limited to 'java/java-impl/src/com/intellij/refactoring')
-rw-r--r--java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java24
-rw-r--r--java/java-impl/src/com/intellij/refactoring/rename/RenameJavaMethodProcessor.java4
-rw-r--r--java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java4
3 files changed, 19 insertions, 13 deletions
diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java b/java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java
index 0f646757406e..ccdc7c33cabb 100644
--- a/java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java
+++ b/java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java
@@ -27,9 +27,10 @@ import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.refactoring.move.MoveCallback;
-import com.intellij.util.ArrayUtil;
+import com.intellij.util.ArrayUtilRt;
import com.intellij.util.Function;
import com.intellij.util.IncorrectOperationException;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.*;
@@ -81,15 +82,16 @@ public class JavaMoveFilesOrDirectoriesHandler extends MoveFilesOrDirectoriesHan
PsiElement element = elements[i];
if (element instanceof PsiClass) {
final PsiClass topLevelClass = PsiUtil.getTopLevelClass(element);
- elements[i] = topLevelClass;
- final PsiFile containingFile = obtainContainingFile(topLevelClass, elements);
- if (containingFile != null && !adjustedElements.contains(containingFile)) {
- adjustedElements.add(containingFile);
- }
- }
- else {
- adjustedElements.add(element);
+ if (topLevelClass != null) {
+ elements[i] = topLevelClass;
+ final PsiFile containingFile = obtainContainingFile(topLevelClass, elements);
+ if (containingFile != null && !adjustedElements.contains(containingFile)) {
+ adjustedElements.add(containingFile);
+ continue;
+ }
+ }
}
+ adjustedElements.add(element);
}
result.setResult(PsiUtilCore.toPsiElementArray(adjustedElements));
}
@@ -99,11 +101,11 @@ public class JavaMoveFilesOrDirectoriesHandler extends MoveFilesOrDirectoriesHan
}
@Nullable
- private static PsiFile obtainContainingFile(PsiElement element, PsiElement[] elements) {
+ private static PsiFile obtainContainingFile(@NotNull PsiElement element, PsiElement[] elements) {
final PsiClass[] classes = ((PsiClassOwner)element.getParent()).getClasses();
final Set<PsiClass> nonMovedClasses = new HashSet<PsiClass>();
for (PsiClass aClass : classes) {
- if (ArrayUtil.find(elements, aClass) < 0) {
+ if (ArrayUtilRt.find(elements, aClass) < 0) {
nonMovedClasses.add(aClass);
}
}
diff --git a/java/java-impl/src/com/intellij/refactoring/rename/RenameJavaMethodProcessor.java b/java/java-impl/src/com/intellij/refactoring/rename/RenameJavaMethodProcessor.java
index e4ac3ce780ac..c410d763dac1 100644
--- a/java/java-impl/src/com/intellij/refactoring/rename/RenameJavaMethodProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/rename/RenameJavaMethodProcessor.java
@@ -209,8 +209,10 @@ public class RenameJavaMethodProcessor extends RenameJavaMemberProcessor {
final PsiElement element = info.getElement();
if (element instanceof PsiReferenceExpression) {
if (((PsiReferenceExpression)element).resolve() == methodToRename) {
+ final PsiElement parent = element.getParent();
+ LOG.assertTrue(parent instanceof PsiMethodCallExpression, parent.getText());
final PsiMethodCallExpression copy = (PsiMethodCallExpression)JavaPsiFacade.getElementFactory(element.getProject())
- .createExpressionFromText(element.getParent().getText(), element);
+ .createExpressionFromText(parent.getText(), element);
final PsiReferenceExpression expression = (PsiReferenceExpression)processRef(copy.getMethodExpression(), newName);
if (expression == null) continue;
final JavaResolveResult resolveResult = expression.advancedResolve(true);
diff --git a/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java b/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java
index ccdeb37fd71f..7f8ae6d46b99 100644
--- a/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java
@@ -113,7 +113,9 @@ public class JavaSafeDeleteProcessor extends SafeDeleteProcessorDelegateBase {
SuperMethodWarningUtil.checkSuperMethods((PsiMethod)element, RefactoringBundle.message("to.delete.with.usage.search"),
allElementsToDelete);
if (methods.length == 0) return null;
- return Arrays.asList(methods);
+ final ArrayList<PsiMethod> psiMethods = new ArrayList<PsiMethod>(Arrays.asList(methods));
+ psiMethods.add((PsiMethod)element);
+ return psiMethods;
}
else if (element instanceof PsiParameter && ((PsiParameter) element).getDeclarationScope() instanceof PsiMethod) {
PsiMethod method = (PsiMethod) ((PsiParameter) element).getDeclarationScope();