diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/assignment/ReplaceAssignmentWithOperatorAssignmentInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/assignment/ReplaceAssignmentWithOperatorAssignmentInspection.java index 4c128b2b2ee9..f71dda32a21c 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/assignment/ReplaceAssignmentWithOperatorAssignmentInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/assignment/ReplaceAssignmentWithOperatorAssignmentInspection.java @@ -25,6 +25,7 @@ import com.siyeh.ig.BaseInspection; import com.siyeh.ig.BaseInspectionVisitor; import com.siyeh.ig.InspectionGadgetsFix; import com.siyeh.ig.PsiReplacementUtil; +import com.siyeh.ig.psiutils.CommentTracker; import com.siyeh.ig.psiutils.EquivalenceChecker; import com.siyeh.ig.psiutils.ParenthesesUtils; import org.jetbrains.annotations.NotNull; @@ -64,7 +65,7 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe final PsiPolyadicExpression polyadicExpression = (PsiPolyadicExpression)infos[1]; return InspectionGadgetsBundle.message( "assignment.replaceable.with.operator.assignment.problem.descriptor", - calculateReplacementExpression(lhs, polyadicExpression)); + calculateReplacementExpression(lhs, polyadicExpression, new CommentTracker())); } @Override @@ -80,7 +81,9 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe return optionsPanel; } - static String calculateReplacementExpression(PsiExpression lhs, PsiPolyadicExpression polyadicExpression) { + static String calculateReplacementExpression(PsiExpression lhs, + PsiPolyadicExpression polyadicExpression, + CommentTracker ct) { final PsiExpression[] operands = polyadicExpression.getOperands(); final PsiJavaToken sign = polyadicExpression.getTokenBeforeOperand(operands[1]); String signText = sign.getText(); @@ -90,7 +93,7 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe else if ("||".equals(signText)) { signText = "|"; } - final StringBuilder text = new StringBuilder(lhs.getText()); + final StringBuilder text = new StringBuilder(ct.text(lhs)); text.append(' '); text.append(signText); text.append("= "); @@ -108,7 +111,7 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe else { addToken = true; } - text.append(operand.getText()); + text.append(ct.text(operand)); } return text.toString(); } @@ -168,9 +171,10 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe if (!(rhs instanceof PsiPolyadicExpression)) { return; } + CommentTracker ct = new CommentTracker(); final PsiPolyadicExpression polyadicExpression = (PsiPolyadicExpression)rhs; - final String newExpression = calculateReplacementExpression(lhs, polyadicExpression); - PsiReplacementUtil.replaceExpression(expression, newExpression); + final String newExpression = calculateReplacementExpression(lhs, polyadicExpression, ct); + PsiReplacementUtil.replaceExpression(expression, newExpression, ct); } }