move member: fix modifiers in target (IDEA-250050)

GitOrigin-RevId: edb46ddced7626c58f42b97931e178f8c9acf9c6
This commit is contained in:
Anna Kozlova
2020-11-10 20:08:24 +00:00
committed by intellij-monorepo-bot
parent ffd7109727
commit b95b3e7707
4 changed files with 26 additions and 2 deletions
@@ -234,8 +234,14 @@ public class MoveJavaMemberHandler implements MoveMemberHandler {
// might need to make modifiers explicit, see IDEADEV-11416
final PsiModifierList list = memberCopy.getModifierList();
assert list != null;
list.setModifierProperty(PsiModifier.STATIC, member.hasModifierProperty(PsiModifier.STATIC));
list.setModifierProperty(PsiModifier.FINAL, member.hasModifierProperty(PsiModifier.FINAL));
if (!(member instanceof PsiClass && (((PsiClass)member).isEnum() || ((PsiClass)member).isInterface()))) {
list.setModifierProperty(PsiModifier.STATIC, member.hasModifierProperty(PsiModifier.STATIC));
}
if (!(member instanceof PsiClass && ((PsiClass)member).isEnum())) {
list.setModifierProperty(PsiModifier.FINAL, member.hasModifierProperty(PsiModifier.FINAL));
}
VisibilityUtil.setVisibility(list, VisibilityUtil.getVisibilityModifier(member.getModifierList()));
}
}
@@ -0,0 +1,8 @@
class A {
public enum E {}
public interface I {}
}
interface B {
}
@@ -0,0 +1,6 @@
class A {}
interface B {
enum E {}
interface I {}
}
@@ -84,6 +84,10 @@ public class MoveMembersTest extends LightMultiFileTestCase {
public void testIDEADEV12448() {
doTest("B", "A", false, 0);
}
public void testClearFinalStatic() {
doTest("B", "A", 0, 1);
}
public void testFieldForwardRef() {
doTest("A", "Constants", 0);