diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/TrivialIfInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/TrivialIfInspection.java index de12aba4210c871b6fe7b0daaf13c75b4ab1ccd7..cb2d07e95062939622d24e95367cc3f25186b003 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/TrivialIfInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/TrivialIfInspection.java @@ -243,19 +243,23 @@ public class TrivialIfInspection extends BaseInspection implements CleanupLocalI if (condition == null) { return; } - final String conditionText = BoolUtils.getNegatedExpressionText(condition); + CommentTracker commentTracker = new CommentTracker(); + final String conditionText = BoolUtils.getNegatedExpressionText(condition, commentTracker); final PsiReturnStatement nextStatement = ControlFlowUtils.getNextReturnStatement(statement); if (nextStatement == null) { return; } - final PsiElement nextSibling = statement.getNextSibling(); + PsiElement nextSibling = statement.getNextSibling(); if (nextSibling != nextStatement && nextStatement.getParent() == statement.getParent()) { - statement.getParent().deleteChildRange(nextSibling, nextStatement.getPrevSibling()); + while (nextSibling != nextStatement && nextSibling != null) { + commentTracker.delete(nextSibling); + nextSibling = nextSibling.getNextSibling(); + } } @NonNls final String newStatement = "return " + conditionText + ';'; - PsiReplacementUtil.replaceStatement(statement, newStatement); + PsiReplacementUtil.replaceStatement(statement, newStatement, commentTracker); if (!ControlFlowUtils.isReachable(nextStatement)) { - nextStatement.delete(); + new CommentTracker().deleteAndRestoreComments(nextStatement); } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.after.java index 5f3147692b35083a5c67b3f58fe7805ff21e248e..664a8661f56a74ce851885b6ca6d0d695a167db0 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.after.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.after.java @@ -8,6 +8,7 @@ class NegatedConditional { final NegatedConditional that = (NegatedConditional)object; + //comment return text != null ? text.equals(that.text) : that.text == null; } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.java index 13294d834efaf2102ce6ca0565135c41d498bd9a..931123effaadeef2ad73ec42bc679ade1b4a2085 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.java @@ -8,7 +8,7 @@ class NegatedConditional { final NegatedConditional that = (NegatedConditional)object; - <caret>if (text != null ? !text.equals(that.text) : that.text != null) return false; + <caret>if (text != null ? !text.equals(that.text) : that.text != null) return false; //comment return true; }