diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/StringConcatenationInLoopsInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/StringConcatenationInLoopsInspection.java index 98210eb7cd6c..48e13e47fa1b 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/StringConcatenationInLoopsInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/StringConcatenationInLoopsInspection.java @@ -215,8 +215,11 @@ public class StringConcatenationInLoopsInspection extends BaseInspection { private static boolean isAppended(PsiVariable variable, PsiExpression expression) { expression = PsiUtil.skipParenthesizedExprDown(expression); if(expression instanceof PsiPolyadicExpression) { - for(PsiExpression operand : ((PsiPolyadicExpression)expression).getOperands()) { - if(ExpressionUtils.isReferenceTo(operand, variable) || isAppended(variable, operand)) return true; + PsiPolyadicExpression polyadicExpression = (PsiPolyadicExpression)expression; + if (polyadicExpression.getOperationTokenType().equals(JavaTokenType.PLUS)) { + for (PsiExpression operand : polyadicExpression.getOperands()) { + if (ExpressionUtils.isReferenceTo(operand, variable) || isAppended(variable, operand)) return true; + } } } return false; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/string_concatenation_in_loops/StringConcatenationInLoop.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/string_concatenation_in_loops/StringConcatenationInLoop.java index 161975019d55..4d75f34d9306 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/string_concatenation_in_loops/StringConcatenationInLoop.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/string_concatenation_in_loops/StringConcatenationInLoop.java @@ -94,6 +94,12 @@ public class StringConcatenationInLoop System.out.println(s); } } + for (int i = 0; i < 10; i++) { + s = (s == "") + "..."; + } + for (int i = 0; i < 10; i++) { + s = ("xyz" + (i + s)) + "..."; + } System.out.println(foo); return foo; }