mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
move to inner: do not raise a conflict when move class with private inner class (IDEA-104986)
This commit is contained in:
+3
@@ -301,6 +301,9 @@ public class MoveClassToInnerProcessor extends BaseRefactoringProcessor {
|
||||
ReferencesSearch.search(member).forEach(new Processor<PsiReference>() {
|
||||
public boolean process(final PsiReference psiReference) {
|
||||
PsiElement element = psiReference.getElement();
|
||||
for (PsiClass psiClass : myClassesToMove) {
|
||||
if (PsiTreeUtil.isAncestor(psiClass, element, false)) return true;
|
||||
}
|
||||
if (isInaccessibleFromTarget(element, PsiModifier.PACKAGE_LOCAL)) {
|
||||
collector.addConflict(psiReference.resolve(), element);
|
||||
}
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package pack2;
|
||||
|
||||
public class A {
|
||||
public static class Class1 {
|
||||
class Inner {}
|
||||
Inner i;
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package packUser;
|
||||
|
||||
import pack2.A;
|
||||
|
||||
public class Class2 {
|
||||
A.Class1 myClass1;
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package pack1;
|
||||
|
||||
public class Class1 {
|
||||
class Inner {}
|
||||
Inner i;
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package pack2;
|
||||
|
||||
public class A {
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package packUser;
|
||||
|
||||
import pack1.Class1;
|
||||
|
||||
public class Class2 {
|
||||
Class1 myClass1;
|
||||
}
|
||||
@@ -17,7 +17,6 @@ package com.intellij.refactoring;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiClass;
|
||||
@@ -50,6 +49,10 @@ public class MoveClassToInnerTest extends RefactoringTestCase {
|
||||
doTest(new String[] { "pack1.Class1" }, "pack2.A");
|
||||
}
|
||||
|
||||
public void testInnerInsideMoved() throws Exception {
|
||||
doTest(new String[] { "pack1.Class1" }, "pack2.A");
|
||||
}
|
||||
|
||||
public void testInsertInnerClassImport() throws Exception {
|
||||
final boolean imports = CodeStyleSettingsManager.getSettings(myProject).INSERT_INNER_CLASS_IMPORTS;
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user