mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
replacement: use bindTo instead of custom replacement, cleanup
IDEA-CR-30319
This commit is contained in:
-12
@@ -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();
|
||||
|
||||
+1
-2
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -6,7 +6,6 @@ class Child implements Super {}
|
||||
|
||||
class Bar {
|
||||
{
|
||||
/*some comment*/
|
||||
String s = Super.FOO;
|
||||
String s = Child./*some comment*/FOO;
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user