diff --git a/java/java-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteJavaCalleeChooser.java b/java/java-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteJavaCalleeChooser.java index f36d16ef14b2..cc4b652617c2 100644 --- a/java/java-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteJavaCalleeChooser.java +++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteJavaCalleeChooser.java @@ -118,6 +118,7 @@ abstract class SafeDeleteJavaCalleeChooser extends CallerChooserBase .stream() .filter(m -> !(m instanceof PsiMember) || containingClass.equals(((PsiMember)m).getContainingClass()) && !psiMember.equals(m)) .filter(m -> !(m instanceof PsiMethod) || ((PsiMethod)m).findDeepestSuperMethods().length == 0) + .filter(m -> m.isPhysical()) .filter(m -> usedOnlyIn(m, psiMember)) .collect(Collectors.toList()); } diff --git a/java/java-tests/testData/refactoring/safeDelete/DeleteMethodKeepEnumValues.java b/java/java-tests/testData/refactoring/safeDelete/DeleteMethodKeepEnumValues.java new file mode 100644 index 000000000000..69a3b163c3cd --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/DeleteMethodKeepEnumValues.java @@ -0,0 +1,9 @@ +enum Test { + A, B; + void foo() { + for (Test v : values()) { + System.out.println(v); + } + } + +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/safeDelete/DeleteMethodKeepEnumValues_after.java b/java/java-tests/testData/refactoring/safeDelete/DeleteMethodKeepEnumValues_after.java new file mode 100644 index 000000000000..569060bbd31d --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/DeleteMethodKeepEnumValues_after.java @@ -0,0 +1,4 @@ +enum Test { + A, B; + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/SafeDeleteTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/SafeDeleteTest.java index cf07f97de28d..49fc901e3d04 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/SafeDeleteTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/SafeDeleteTest.java @@ -107,6 +107,10 @@ public class SafeDeleteTest extends MultiFileTestCase { doSingleFileTest(); } + public void testDeleteMethodKeepEnumValues() throws Exception { + doSingleFileTest(); + } + public void testDeleteMethodCascadeRecursive() throws Exception { doSingleFileTest(); }