diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/TrivialStringConcatenationInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/TrivialStringConcatenationInspection.java index 43516f16abba..628503df238e 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/TrivialStringConcatenationInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/TrivialStringConcatenationInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2012 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2013 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,7 +91,7 @@ public class TrivialStringConcatenationInspection extends BaseInspection { replaced = true; continue; } - if (operand == expression) { + if (ParenthesesUtils.stripParentheses(operand) == expression) { seenEmpty = true; continue; } @@ -114,6 +114,7 @@ public class TrivialStringConcatenationInspection extends BaseInspection { return text.toString(); } + @NonNls static String buildReplacement(@NotNull PsiExpression operandToReplace, boolean seenString) { if (ExpressionUtils.isNullLiteral(operandToReplace)) { if (seenString) { diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/trivial_string_concatenation/Parentheses2.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/trivial_string_concatenation/Parentheses2.after.java new file mode 100644 index 000000000000..159a763849ac --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/trivial_string_concatenation/Parentheses2.after.java @@ -0,0 +1,7 @@ +package com.siyeh.igfixes.performance.trivial_string_concatenation; + +class Parentheses2 { + void m(String version) { + final String s = " (" + "Groovy " + (version) + ")"; + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/trivial_string_concatenation/Parentheses2.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/trivial_string_concatenation/Parentheses2.java new file mode 100644 index 000000000000..344093c17cfa --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/trivial_string_concatenation/Parentheses2.java @@ -0,0 +1,7 @@ +package com.siyeh.igfixes.performance.trivial_string_concatenation; + +class Parentheses2 { + void m(String version) { + final String s = " (" + ("") + "Groovy " + (version) + ")"; + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/performance/TrivialStringConcatenationFixTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/performance/TrivialStringConcatenationFixTest.java index ac3c0a54007b..b99500e7eca1 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/performance/TrivialStringConcatenationFixTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/performance/TrivialStringConcatenationFixTest.java @@ -13,6 +13,7 @@ public class TrivialStringConcatenationFixTest extends IGQuickFixesTestCase { } public void testParentheses() { doTest("Replace concatenation with 'completedTiles + \" , \" + (totalTiles - completedTiles)'"); } + public void testParentheses2() { doTest("Replace concatenation with '\" (\" + \"Groovy \" + (version) + \")\"'"); } public void testBinaryNull() { doTest("Replace concatenation with 'String.valueOf((Object)null)'"); } public void testAtTheEnd() { doTest("Replace concatenation with '\"asdf\" + 1 + o'"); } } \ No newline at end of file