move as enum: strip enum qualifiers in case statements

This commit is contained in:
anna
2010-06-09 14:44:44 +04:00
parent a45cb23ea5
commit ad87ed290e
6 changed files with 49 additions and 2 deletions

View File

@@ -84,7 +84,7 @@ public class MoveJavaMemberHandler implements MoveMemberHandler {
PsiReferenceExpression refExpr = (PsiReferenceExpression)usage.reference;
PsiExpression qualifier = refExpr.getQualifierExpression();
if (qualifier != null) {
if (usage.qualifierClass != null) {
if (usage.qualifierClass != null && PsiTreeUtil.getParentOfType(refExpr, PsiSwitchLabelStatement.class) == null) {
changeQualifier(refExpr, usage.qualifierClass, usage.member);
}
else {
@@ -92,7 +92,7 @@ public class MoveJavaMemberHandler implements MoveMemberHandler {
}
}
else { // no qualifier
if (usage.qualifierClass != null) {
if (usage.qualifierClass != null && PsiTreeUtil.getParentOfType(refExpr, PsiSwitchLabelStatement.class) == null) {
changeQualifier(refExpr, usage.qualifierClass, usage.member);
}
}

View File

@@ -0,0 +1,4 @@
public enum A {
ONE(1);
A(int i){}
}

View File

@@ -0,0 +1,17 @@
public class B {
void foo(A i) {
switch (i) {
case ONE :
break;
}
}
}
class Usage {
void foo(A i) {
switch (i) {
case ONE :
break;
}
}
}

View File

@@ -0,0 +1,4 @@
public enum A {
;
A(int i){}
}

View File

@@ -0,0 +1,18 @@
public class B {
public static final int ONE = 1;
void foo(A i) {
switch (i) {
case ONE :
break;
}
}
}
class Usage {
void foo(A i) {
switch (i) {
case B.ONE :
break;
}
}
}

View File

@@ -84,6 +84,10 @@ public class MoveMembersTest extends MultiFileTestCase {
doTest("B", "A", 0);
}
public void testEnumConstantFromCaseStatement() throws Exception {
doTest("B", "A", 0);
}
public void testDependantFields() throws Exception {
doTest("B", "A", 0);
}