mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 11:53:49 +07:00
move inner to interface: strip static modifier
This commit is contained in:
@@ -192,7 +192,7 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
|
||||
PsiMember newMember=handler.doMove(myOptions, member, anchors.get(member), targetClass);
|
||||
elementListener.elementMoved(newMember);
|
||||
|
||||
fixVisibility(newMember, usages);
|
||||
fixModifierList(newMember, usages);
|
||||
for (PsiReference reference : refsToBeRebind) {
|
||||
reference.bindToElement(newMember);
|
||||
}
|
||||
@@ -213,13 +213,16 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
private void fixVisibility(PsiMember newMember, final UsageInfo[] usages) throws IncorrectOperationException {
|
||||
private void fixModifierList(PsiMember newMember, final UsageInfo[] usages) throws IncorrectOperationException {
|
||||
PsiModifierList modifierList = newMember.getModifierList();
|
||||
|
||||
if(myTargetClass.isInterface()) {
|
||||
modifierList.setModifierProperty(PsiModifier.PUBLIC, false);
|
||||
modifierList.setModifierProperty(PsiModifier.PROTECTED, false);
|
||||
modifierList.setModifierProperty(PsiModifier.PRIVATE, false);
|
||||
if (newMember instanceof PsiClass) {
|
||||
modifierList.setModifierProperty(PsiModifier.STATIC, false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
public class A {
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
public interface B {
|
||||
Inner i = new Inner();
|
||||
|
||||
class Inner {
|
||||
public boolean equals(Object o) {
|
||||
return o instanceof Inner;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
public class C {
|
||||
B.Inner i = new B.Inner();
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
public class A {
|
||||
public static class Inner {
|
||||
public boolean equals(Object o) {
|
||||
return o instanceof Inner;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
public interface B {
|
||||
A.Inner i = new A.Inner();
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
public class C {
|
||||
A.Inner i = new A.Inner();
|
||||
}
|
||||
@@ -98,6 +98,10 @@ public class MoveMembersTest extends MultiFileTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
public void testInnerToInterface() throws Exception {
|
||||
doTest("A", "B", 0);
|
||||
}
|
||||
|
||||
protected String getTestRoot() {
|
||||
return "/refactoring/moveMembers/";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user