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;
}