replacement: use bindTo instead of custom replacement, cleanup

IDEA-CR-30319
This commit is contained in:
Anna.Kozlova
2018-03-09 19:14:10 +01:00
parent c5bc5a2731
commit f9aa0d3d71
4 changed files with 4 additions and 18 deletions
@@ -112,18 +112,6 @@ public class PsiReplacementUtil {
return styleManager.reformat(javaStyleManager.shortenClassReferences(newStatement));
}
public static void replaceExpressionWithReferenceTo(@NotNull PsiExpression expression, @NotNull PsiMember target) {
final Project project = expression.getProject();
final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(project);
final PsiElementFactory factory = psiFacade.getElementFactory();
final PsiReferenceExpression newExpression = (PsiReferenceExpression)factory.createExpressionFromText("xxx", expression);
CommentTracker tracker = new CommentTracker();
final PsiReferenceExpression replacementExpression = (PsiReferenceExpression)tracker.replaceAndRestoreComments(expression, newExpression);
final PsiElement element = replacementExpression.bindToElement(target);
final JavaCodeStyleManager styleManager = JavaCodeStyleManager.getInstance(project);
styleManager.shortenClassReferences(element);
}
@NotNull
public static String getElementText(@NotNull PsiElement element, @Nullable PsiElement elementToReplace, @Nullable String replacement) {
final StringBuilder out = new StringBuilder();
@@ -24,7 +24,6 @@ import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.InspectionGadgetsFix;
import com.siyeh.ig.PsiReplacementUtil;
import org.jetbrains.annotations.NotNull;
public class StaticFieldReferenceOnSubclassInspection extends BaseInspection implements CleanupLocalInspectionTool {
@@ -75,7 +74,7 @@ public class StaticFieldReferenceOnSubclassInspection extends BaseInspection imp
if (expression == null) return;
final PsiField field = ObjectUtils.tryCast(expression.resolve(), PsiField.class);
if (field == null) return;
PsiReplacementUtil.replaceExpressionWithReferenceTo(expression, field);
expression.bindToElement(field);
}
}
@@ -6,7 +6,6 @@ class Child implements Super {}
class Bar {
{
/*some comment*/
String s = Super.FOO;
String s = Child./*some comment*/FOO;
}
}
@@ -12,8 +12,8 @@ public class StaticFieldReferenceOnSubclassTest extends IGQuickFixesTestCase {
myFixture.enableInspections(new StaticFieldReferenceOnSubclassInspection());
}
public void testPreserveTypeArgs() {
doTest("preserveComments", InspectionGadgetsBundle.message("static.field.via.subclass.rationalize.quickfix"));
public void testPreserveComments() {
doTest(getTestName(true), InspectionGadgetsBundle.message("static.field.via.subclass.rationalize.quickfix"));
}
@Override