[codeInsight] IDEA-240288 Inspection for StringBuilder.toString().substring()

This patch replaces the excessive extraction of a qualifier via `ExpressionUtils.getEffectiveQualifier` with a simple `call.getMethodExpression().getQualifierExpression`

Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>

GitOrigin-RevId: 4a4f1c6b218c63691fa2bd4610e9901874d3c712
This commit is contained in:
Nikita Eshkeev
2020-05-15 12:15:31 +00:00
committed by intellij-monorepo-bot
parent b12dfe5539
commit ce7dae26b1
3 changed files with 5 additions and 1 deletions
@@ -27,6 +27,8 @@ class StringBuilderToString {
System.out.println(new StringBuilder().substring(1, 3).length());
"hello".substring(sb.toString());
System.out.println((((new StringBuilder()))).substring(1, 3));
System.out.println((new StringBuilder()).substring(1, 3).length());
}
void builder(StringBuilder sb) {
@@ -20,6 +20,8 @@ class StringBuilderToString {
System.out.println(new StringBuilder().substring(1, 3).length());
"hello".substring(sb.toString());
System.out.println((((new StringBuilder()))).substring(1, 3));
System.out.println((new StringBuilder()).substring(1, 3).length());
}
void builder(StringBuilder sb) {
@@ -282,7 +282,7 @@ public class RedundantStringOperationInspection extends AbstractBaseJavaLocalIns
final PsiMethodCallExpression substringCall = PsiTreeUtil.getParentOfType(call, PsiMethodCallExpression.class);
if (substringCall == null) return null;
final PsiExpression qualifier = ExpressionUtils.getEffectiveQualifier(substringCall.getMethodExpression());
final PsiExpression qualifier = PsiUtil.skipParenthesizedExprDown(substringCall.getMethodExpression().getQualifierExpression());
if (qualifier != call || !STRING_SUBSTRING.test(substringCall)) return null;
return getProblem(call, "inspection.redundant.string.call.message");