mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
don't touch static imports in moved directories (IDEA-165125)
This commit is contained in:
+4
-4
@@ -5,13 +5,13 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.psi.util.FileTypeUtils;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import com.intellij.refactoring.util.RefactoringConflictsUtil;
|
||||
import com.intellij.usageView.UsageInfo;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import com.intellij.psi.util.FileTypeUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -51,7 +51,7 @@ public class JavaMoveDirectoryWithClassesHelper extends MoveDirectoryWithClasses
|
||||
for (PsiReference reference : ReferencesSearch.search(aPackage, GlobalSearchScope.projectScope(project))) {
|
||||
final PsiElement element = reference.getElement();
|
||||
final PsiImportStatementBase statementBase = PsiTreeUtil.getParentOfType(element, PsiImportStatementBase.class);
|
||||
if (statementBase != null && statementBase.isOnDemand()) {
|
||||
if (statementBase != null && statementBase.isOnDemand() && !isUnderRefactoring(statementBase, directoriesToMove)) {
|
||||
usages.add(new RemoveOnDemandImportStatementsUsageInfo(statementBase));
|
||||
}
|
||||
}
|
||||
@@ -60,9 +60,9 @@ public class JavaMoveDirectoryWithClassesHelper extends MoveDirectoryWithClasses
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isUnderRefactoring(PsiDirectory packageDirectory, PsiDirectory[] directoriesToMove) {
|
||||
private static boolean isUnderRefactoring(PsiElement psiElement, PsiDirectory[] directoriesToMove) {
|
||||
for (PsiDirectory directory : directoriesToMove) {
|
||||
if (PsiTreeUtil.isAncestor(directory, packageDirectory, true)) {
|
||||
if (PsiTreeUtil.isAncestor(directory, psiElement, true)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package pack0.pack2.pack3;
|
||||
import static pack0.pack2.pack3.S1.TestEnum.*;
|
||||
|
||||
public class S1 {
|
||||
|
||||
public void test() {
|
||||
System.out.println(TEST_STRING_1);
|
||||
}
|
||||
|
||||
public enum TestEnum {
|
||||
TEST_STRING_1();
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package pack0.pack2.pack4;
|
||||
import static pack0.pack2.pack4.S1.TestEnum.*;
|
||||
|
||||
public class S1 {
|
||||
|
||||
public void test() {
|
||||
System.out.println(TEST_STRING_1);
|
||||
}
|
||||
|
||||
public enum TestEnum {
|
||||
TEST_STRING_1();
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package pack1.pack2.pack3;
|
||||
import static pack1.pack2.pack3.S1.TestEnum.*;
|
||||
|
||||
public class S1 {
|
||||
|
||||
public void test() {
|
||||
System.out.println(TEST_STRING_1);
|
||||
}
|
||||
|
||||
public enum TestEnum {
|
||||
TEST_STRING_1();
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package pack1.pack2.pack4;
|
||||
import static pack1.pack2.pack4.S1.TestEnum.*;
|
||||
|
||||
public class S1 {
|
||||
|
||||
public void test() {
|
||||
System.out.println(TEST_STRING_1);
|
||||
}
|
||||
|
||||
public enum TestEnum {
|
||||
TEST_STRING_1();
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,18 @@ public class MovePackageAsDirectoryTest extends MultiFileTestCase {
|
||||
doTest(action);
|
||||
}
|
||||
|
||||
public void testRenamePackageStaticImportsToNestedClasses() throws Exception {
|
||||
final PerformAction action = (rootDir, rootAfter) -> {
|
||||
final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(myProject);
|
||||
final PsiPackage sourcePackage = psiFacade.findPackage("pack1.pack2");
|
||||
assertNotNull(sourcePackage);
|
||||
|
||||
RenamePsiPackageProcessor.createRenameMoveProcessor("pack0.pack2", sourcePackage, false, false).run();
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
};
|
||||
doTest(action);
|
||||
}
|
||||
|
||||
public void testMovePackageWithTxtFilesInside() throws Exception {
|
||||
doTest(createAction("pack1", "target"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user