diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/PsiReplacementUtil.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/PsiReplacementUtil.java index 6aadfd5ce246..b20ae86c491c 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/PsiReplacementUtil.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/PsiReplacementUtil.java @@ -64,6 +64,15 @@ public class PsiReplacementUtil { return styleManager.reformat(replacementExp); } + public static PsiElement replaceExpressionAndShorten(@NotNull PsiExpression expression, @NotNull @NonNls String newExpressionText, CommentTracker tracker) { + final Project project = expression.getProject(); + final PsiElement replacementExp = tracker.replaceAndRestoreComments(expression, newExpressionText); + final JavaCodeStyleManager javaCodeStyleManager = JavaCodeStyleManager.getInstance(project); + javaCodeStyleManager.shortenClassReferences(replacementExp); + final CodeStyleManager styleManager = CodeStyleManager.getInstance(project); + return styleManager.reformat(replacementExp); + } + /** * Consider to use {@link #replaceStatement(PsiExpression, String, CommentTracker)} to preserve comments */ diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/asserttoif/IfCanBeAssertionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/asserttoif/IfCanBeAssertionInspection.java index 82ca01548d29..f8e06573ffe0 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/asserttoif/IfCanBeAssertionInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/asserttoif/IfCanBeAssertionInspection.java @@ -171,7 +171,10 @@ public class IfCanBeAssertionInspection extends BaseInspection { if (!(condition instanceof PsiBinaryExpression)) return null; PsiExpression nullComparedExpression = ExpressionUtils.getValueComparedWithNull((PsiBinaryExpression)condition); if (nullComparedExpression == null) return null; - return new Replacer(text -> PsiReplacementUtil.replaceStatementAndShortenClassNames(ifStatement, text + ";"), nullComparedExpression, null); + CommentTracker tracker = new CommentTracker(); + return new Replacer(text -> PsiReplacementUtil.replaceStatementAndShortenClassNames(ifStatement, text + ";", tracker), + tracker.markUnchanged(nullComparedExpression), + null); } else { PsiReferenceExpression ref = ObjectUtils.tryCast(descriptor.getPsiElement().getParent(), PsiReferenceExpression.class); if (ref == null) return null; @@ -185,7 +188,10 @@ public class IfCanBeAssertionInspection extends BaseInspection { } PsiExpression[] args = methodCall.getArgumentList().getExpressions(); if (args.length > 2) return null; - return new Replacer(text -> PsiReplacementUtil.replaceExpressionAndShorten(methodCall, text), args[0], args.length == 2 ? args[1] : null); + CommentTracker tracker = new CommentTracker(); + return new Replacer(text -> PsiReplacementUtil.replaceExpressionAndShorten(methodCall, text, tracker), + tracker.markUnchanged(args[0]), + args.length == 2 ? tracker.markUnchanged(args[1]) : null); } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/asserttoif/if_to_assert/ObjectsRequireNonNull.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/asserttoif/if_to_assert/ObjectsRequireNonNull.after.java index 2cf9ea200536..d02be6f67378 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/asserttoif/if_to_assert/ObjectsRequireNonNull.after.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/asserttoif/if_to_assert/ObjectsRequireNonNull.after.java @@ -19,6 +19,7 @@ import java.util.Objects; class Parentheses { void s(String s) { + //keep me Objects.requireNonNull(s); } } \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/asserttoif/if_to_assert/ObjectsRequireNonNull.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/asserttoif/if_to_assert/ObjectsRequireNonNull.java index 7e22a38c2c68..ff4173360320 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/asserttoif/if_to_assert/ObjectsRequireNonNull.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/asserttoif/if_to_assert/ObjectsRequireNonNull.java @@ -18,7 +18,7 @@ package com.siyeh.ipp.asserttoif.if_to_assert; class Parentheses { void s(String s) { if (s == null) { - throw (new NullPointerException(("s"))); + throw (new NullPointerException(("s")));//keep me } } } \ No newline at end of file