correct field's class instance when move instance method (IDEA-82103)

This commit is contained in:
anna
2012-03-01 20:22:02 +01:00
parent a6244c8472
commit 5fa5c0f598
4 changed files with 35 additions and 1 deletions
@@ -259,7 +259,14 @@ public class MoveInstanceMethodProcessor extends BaseRefactoringProcessor{
}
else {
VisibilityUtil.escalateVisibility((PsiField)myTargetVariable, expression);
newQualifier = JavaPsiFacade.getInstance(manager.getProject()).getElementFactory().createExpressionFromText(myTargetVariable.getName(), null);
String newQualifierName = myTargetVariable.getName();
if (myTargetVariable instanceof PsiField) {
final PsiClass aClass = PsiUtil.resolveClassInClassTypeOnly(oldQualifier.getType());
if (aClass == ((PsiField)myTargetVariable).getContainingClass()) {
newQualifierName = oldQualifier.getText() + "." + newQualifierName;
}
}
newQualifier = JavaPsiFacade.getInstance(manager.getProject()).getElementFactory().createExpressionFromText(newQualifierName, null);
}
PsiExpression newArgument = null;