From f9aa0d3d713e9a4e8dff35b6c67f80d85c1f60c2 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Fri, 9 Mar 2018 18:52:52 +0100 Subject: [PATCH] replacement: use bindTo instead of custom replacement, cleanup IDEA-CR-30319 --- .../src/com/siyeh/ig/PsiReplacementUtil.java | 12 ------------ .../StaticFieldReferenceOnSubclassInspection.java | 3 +-- .../preserveComments.after.java | 3 +-- .../bugs/StaticFieldReferenceOnSubclassTest.java | 4 ++-- 4 files changed, 4 insertions(+), 18 deletions(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/PsiReplacementUtil.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/PsiReplacementUtil.java index a23ba7756f66..8c783fd836d0 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/PsiReplacementUtil.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/PsiReplacementUtil.java @@ -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(); diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/StaticFieldReferenceOnSubclassInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/StaticFieldReferenceOnSubclassInspection.java index f60858e5cec6..b97253bf7b2b 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/StaticFieldReferenceOnSubclassInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/StaticFieldReferenceOnSubclassInspection.java @@ -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); } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/bugs/staticFieldRefOnSubclass/preserveComments.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/bugs/staticFieldRefOnSubclass/preserveComments.after.java index 34733be94a45..87b4864f0e6c 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/bugs/staticFieldRefOnSubclass/preserveComments.after.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/bugs/staticFieldRefOnSubclass/preserveComments.after.java @@ -6,7 +6,6 @@ class Child implements Super {} class Bar { { - /*some comment*/ - String s = Super.FOO; + String s = Child./*some comment*/FOO; } } \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/bugs/StaticFieldReferenceOnSubclassTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/bugs/StaticFieldReferenceOnSubclassTest.java index bb987ef636e8..bcc2a7eb0d2f 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/bugs/StaticFieldReferenceOnSubclassTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/bugs/StaticFieldReferenceOnSubclassTest.java @@ -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