move static: correctly process ambiguity between moved members (IDEA-114908)

This commit is contained in:
anna
2013-10-22 12:51:38 +02:00
parent 7dc625f140
commit 7b3af34395
6 changed files with 29 additions and 1 deletions
@@ -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
}
}
}
@@ -0,0 +1,2 @@
public class A {
}
@@ -0,0 +1,10 @@
public class B {
static void foo() {
}
static class Bar {
void foo() {
B.foo();
}
}
}
@@ -0,0 +1,10 @@
public class A {
static void foo() {
}
static class Bar {
void foo() {
A.foo();
}
}
}
@@ -0,0 +1,2 @@
public class B {
}
@@ -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);
}