diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveMembers/MoveJavaMemberHandler.java b/java/java-impl/src/com/intellij/refactoring/move/moveMembers/MoveJavaMemberHandler.java index ea39904f5a1d..4dda4d75a304 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveMembers/MoveJavaMemberHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveMembers/MoveJavaMemberHandler.java @@ -193,7 +193,7 @@ public class MoveJavaMemberHandler implements MoveMemberHandler { } } else { // no qualifier - if (usage.qualifierClass != null && PsiTreeUtil.getParentOfType(refExpr, PsiSwitchLabelStatement.class) == null) { + if (usage.qualifierClass != null && (!usage.qualifierClass.isEnum() || PsiTreeUtil.getParentOfType(refExpr, PsiSwitchLabelStatement.class) == null)) { changeQualifier(refExpr, usage.qualifierClass, usage.member); } } diff --git a/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/after/A.java b/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/after/A.java new file mode 100644 index 000000000000..c77f0cda48d3 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/after/A.java @@ -0,0 +1,3 @@ +public class A { + public static final String ONE = ""; +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/after/B.java b/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/after/B.java new file mode 100644 index 000000000000..6ad677589b48 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/after/B.java @@ -0,0 +1,8 @@ +public class B { + void foo(String s) { + switch (i) { + case A.ONE : + break; + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/before/A.java b/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/before/A.java new file mode 100644 index 000000000000..61ff2abcc95e --- /dev/null +++ b/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/before/A.java @@ -0,0 +1,2 @@ +public class A { +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/before/B.java b/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/before/B.java new file mode 100644 index 000000000000..5ae2faed9bb6 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveMembers/stringConstantFromCaseStatement/before/B.java @@ -0,0 +1,9 @@ +public class B { + public static final String ONE = ""; + void foo(String s) { + switch (i) { + case ONE : + break; + } + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java b/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java index 596944b839d3..ca97d36cb650 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java @@ -107,6 +107,10 @@ public class MoveMembersTest extends MultiFileTestCase { doTest("B", "A", 0); } + public void testStringConstantFromCaseStatement() throws Exception { + doTest("B", "A", 0); + } + public void testDependantFields() throws Exception { doTest("B", "A", 0); }