From 289f64b7647bbc9e81ebf7a6b325a379c79e30b0 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 6 Apr 2012 13:21:39 +0200 Subject: [PATCH] move instance: do not warn about self references --- .../refactoring/move/moveInner/MoveInnerProcessor.java | 2 +- .../moveInner/innerClassSelfRef/after/p/A.java | 4 ++++ .../moveInner/innerClassSelfRef/after/p/B.java | 7 +++++++ .../moveInner/innerClassSelfRef/before/p/A.java | 9 +++++++++ .../testSrc/com/intellij/refactoring/MoveInnerTest.java | 4 ++++ 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/after/p/A.java create mode 100644 java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/after/p/B.java create mode 100644 java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/before/p/A.java diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java index 35abecf8989f..4607e097c957 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java @@ -337,7 +337,7 @@ public class MoveInnerProcessor extends BaseRefactoringProcessor { super.visitReferenceElement(reference); final PsiElement resolve = reference.resolve(); if (resolve instanceof PsiMember) { - if (PsiTreeUtil.isAncestor(myOuterClass, resolve, true) && !PsiTreeUtil.isAncestor(myInnerClass, resolve, true)) { + if (PsiTreeUtil.isAncestor(myOuterClass, resolve, true) && !PsiTreeUtil.isAncestor(myInnerClass, resolve, false)) { if (becomesInaccessible((PsiMember)resolve)) { registerConflict(reference, resolve, reported, conflicts); } diff --git a/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/after/p/A.java b/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/after/p/A.java new file mode 100644 index 000000000000..23fae3e676f5 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/after/p/A.java @@ -0,0 +1,4 @@ +package p; + +class A { +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/after/p/B.java b/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/after/p/B.java new file mode 100644 index 000000000000..9742afa42727 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/after/p/B.java @@ -0,0 +1,7 @@ +package p; + +class B { + public static B create() { + return new B(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/before/p/A.java b/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/before/p/A.java new file mode 100644 index 000000000000..aa6c2e3627e3 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveInner/innerClassSelfRef/before/p/A.java @@ -0,0 +1,9 @@ +package p; + +class A { + private static class B { + public static B create() { + return new B(); + } + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/MoveInnerTest.java b/java/java-tests/testSrc/com/intellij/refactoring/MoveInnerTest.java index e6091e431e7b..17c8894cf186 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/MoveInnerTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/MoveInnerTest.java @@ -56,6 +56,10 @@ public class MoveInnerTest extends MultiFileTestCase { } } + public void testInnerClassSelfRef() throws Exception { + doTest(createAction("p.A.B", "B", false, null, false, false, null)); + } + public void testScr30106() throws Exception { doTest(createAction("p.A.B", "B", true, "outer", false, false, null)); }