diff --git a/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java b/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java index 950ba6facc92..871c9643e202 100644 --- a/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/JavaSafeDeleteProcessor.java @@ -734,7 +734,7 @@ public class JavaSafeDeleteProcessor extends SafeDeleteProcessorDelegateBase { public static boolean isInside (PsiElement place, PsiElement ancestor) { if (SafeDeleteProcessor.isInside(place, ancestor)) return true; - if (place instanceof PsiComment && ancestor instanceof PsiClass) { + if (PsiTreeUtil.getParentOfType(place, PsiComment.class, false) != null && ancestor instanceof PsiClass) { final PsiClass aClass = (PsiClass)ancestor; if (aClass.getParent() instanceof PsiJavaFile) { final PsiJavaFile file = (PsiJavaFile)aClass.getParent(); diff --git a/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/after/foo/I.java b/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/after/foo/I.java new file mode 100644 index 000000000000..f0205fb65bc3 --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/after/foo/I.java @@ -0,0 +1,3 @@ +package foo; +public interface I { +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/before/foo/C1.java b/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/before/foo/C1.java new file mode 100644 index 000000000000..f00e66dd4fb8 --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/before/foo/C1.java @@ -0,0 +1,8 @@ +/** + * C1.java - Safe-delete bug example + */ +package foo; + +public class C1 { + C1 fooo; +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/before/foo/I.java b/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/before/foo/I.java new file mode 100644 index 000000000000..f0205fb65bc3 --- /dev/null +++ b/java/java-tests/testData/refactoring/safeDelete/topLevelDocComment/before/foo/I.java @@ -0,0 +1,3 @@ +package foo; +public interface I { +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java b/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java index 0f290531cc84..9c1cf4915312 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/SafeDeleteTest.java @@ -70,6 +70,12 @@ public class SafeDeleteTest extends MultiFileTestCase { doTest("C2"); } + + public void testTopLevelDocComment() throws Exception { + myDoCompare = false; + doTest("foo.C1"); + } + public void testTopParameterInHierarchy() throws Exception { myDoCompare = false; doTest("I");