From 7b3af34395bbabe246cc9d639dff8a0e2490de57 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 22 Oct 2013 12:36:41 +0200 Subject: [PATCH] move static: correctly process ambiguity between moved members (IDEA-114908) --- .../move/moveMembers/MoveJavaMemberHandler.java | 2 +- .../moveMembers/multipleWithDependencies1/after/A.java | 2 ++ .../moveMembers/multipleWithDependencies1/after/B.java | 10 ++++++++++ .../multipleWithDependencies1/before/A.java | 10 ++++++++++ .../multipleWithDependencies1/before/B.java | 2 ++ .../com/intellij/refactoring/MoveMembersTest.java | 4 ++++ 6 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/after/A.java create mode 100644 java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/after/B.java create mode 100644 java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/before/A.java create mode 100644 java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/before/B.java 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 4dda4d75a304..e24c40dbfe32 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 @@ -58,7 +58,7 @@ public class MoveJavaMemberHandler implements MoveMemberHandler { else { if (qualifier instanceof PsiReferenceExpression && ((PsiReferenceExpression)qualifier).isReferenceTo(member.getContainingClass())) { - return new MoveMembersProcessor.MoveMembersUsageInfo(member, refExpr, null, qualifier, psiReference); // change qualifier + return new MoveMembersProcessor.MoveMembersUsageInfo(member, refExpr, targetClass, qualifier, psiReference); // change qualifier } } } diff --git a/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/after/A.java b/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/after/A.java new file mode 100644 index 000000000000..f7e8cc3b9037 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/after/A.java @@ -0,0 +1,2 @@ +public class A { +} diff --git a/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/after/B.java b/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/after/B.java new file mode 100644 index 000000000000..db8b2d099dc0 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/after/B.java @@ -0,0 +1,10 @@ +public class B { + static void foo() { + } + + static class Bar { + void foo() { + B.foo(); + } + } +} diff --git a/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/before/A.java b/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/before/A.java new file mode 100644 index 000000000000..71c3b681dd9b --- /dev/null +++ b/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/before/A.java @@ -0,0 +1,10 @@ +public class A { + static void foo() { + } + + static class Bar { + void foo() { + A.foo(); + } + } +} diff --git a/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/before/B.java b/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/before/B.java new file mode 100644 index 000000000000..66dd24ce6750 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveMembers/multipleWithDependencies1/before/B.java @@ -0,0 +1,2 @@ +public class B { +} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java b/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java index ca97d36cb650..2f384c9e3b5b 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/MoveMembersTest.java @@ -163,6 +163,10 @@ public class MoveMembersTest extends MultiFileTestCase { doTest("A", "B", true, VisibilityUtil.ESCALATE_VISIBILITY, 0, 1); } + public void testMultipleWithDependencies1() throws Exception { + doTest("A", "B", true, VisibilityUtil.ESCALATE_VISIBILITY, 0, 1); + } + public void testFromNestedToOuter() throws Exception { doTest("Outer.Inner", "Outer", true, VisibilityUtil.ESCALATE_VISIBILITY, 0); }