mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-01 10:48:09 +07:00
[codeInsight] IDEA-219640 Inspection to detect some pointless String.substring
This patch fixes the notes from the review, it includes: - restoring annotation.naming.convention.display.name - using com.intellij.openapi.util.Pair instead of custom private objects - using EquivalenceChecker.expressionsMatch in order to extract difference between two PsiBinaryExpression - using BoolUtils.findNegation to properly deduce the sign of the equals clause - restoring comments while replacing substring with charAt - properly handling special characters (e.g. '\\', '\n', '\"', etc.) in equals clause when it is converted to charAt + "==" - eliminating the imperative form of a message for the inspection of substring + equals Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com> GitOrigin-RevId: be1dfd53a6af10979485cd172af39653faafb744
This commit is contained in:
committed by
intellij-monorepo-bot
parent
36a6a3ab65
commit
0aa2e160b0
@@ -9,6 +9,16 @@ class Foo {
|
||||
sb.append(args[0].charAt(2));
|
||||
sb.append(args[0].charAt(i));
|
||||
|
||||
sb.append(args[0].substring(i - 3, i - 2));
|
||||
sb.append(args[0].substring(i - 3, 2 - i));
|
||||
sb.append(args[0].substring(3 - i, i - 2));
|
||||
sb.append(args[0].substring(3 - i, 2 - i));
|
||||
|
||||
sb.append(args[0].substring(2 - i, 4 - i));
|
||||
sb.append(args[0].substring(i - 2, i - 4));
|
||||
|
||||
sb.append(args[0].charAt(i + i));
|
||||
|
||||
sb.append(args[0].charAt(i + 2));
|
||||
sb.append(args[0].charAt(2 + i));
|
||||
sb.append(args[0].charAt(i + 2));
|
||||
@@ -17,17 +27,14 @@ class Foo {
|
||||
sb.append(args[0].substring(2 + i, 4 + i));
|
||||
sb.append(args[0].substring(i + 2, i + 4));
|
||||
|
||||
sb.append(new /*1
|
||||
|
||||
*/String(/* 2 */"foo")/*3 */./* 4*/charAt(i/*5\n*/+2 /*\n\r6 */))
|
||||
|
||||
String s1 = "xxx" + args[0].substring(3, 5);
|
||||
String s2 = "xxx" + args[0].charAt(3);
|
||||
String s3 = args[0].charAt(2) + "xxx";
|
||||
|
||||
boolean value = args[0].charAt(4) == '_';
|
||||
|
||||
if(args[0].charAt(4) == '_') { }
|
||||
if(args[0].charAt(4) != '_') { }
|
||||
if(args[0].charAt(4) == '_') { }
|
||||
if(args[0].charAt(4) != '_') { }
|
||||
|
||||
System.out.print(args[0].charAt(2));
|
||||
System.out.println(args[0].charAt(2));
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
// "Fix all 'Redundant String operation' problems in file" "true"
|
||||
class Foo {
|
||||
public static void main(String[] args) {
|
||||
|
||||
boolean value = args[0].charAt(4) == '_';
|
||||
|
||||
if(args[0].charAt(4) == '_') { }
|
||||
if(args[0].charAt(4) != '_') { }
|
||||
if(args[0].charAt(4) == '_') { }
|
||||
if(args[0].charAt(4) != '_') { }
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,16 @@ class Foo {
|
||||
sb.append(args[0].substring(2, 3));
|
||||
sb.append(args[0].substring(i, i + 1));
|
||||
|
||||
sb.append(args[0].substring(i - 3, i - 2));
|
||||
sb.append(args[0].substring(i - 3, 2 - i));
|
||||
sb.append(args[0].substring(3 - i, i - 2));
|
||||
sb.append(args[0].substring(3 - i, 2 - i));
|
||||
|
||||
sb.append(args[0].substring(2 - i, 4 - i));
|
||||
sb.append(args[0].substring(i - 2, i - 4));
|
||||
|
||||
sb.append(args[0].substring(i + i, i + (i + 1)));
|
||||
|
||||
sb.append(args[0].substring(i + 2, i + 3));
|
||||
sb.append(args[0].substring(2 + i, i + 3));
|
||||
sb.append(args[0].substring(i + 2, 3 + i));
|
||||
@@ -17,17 +27,14 @@ class Foo {
|
||||
sb.append(args[0].substring(2 + i, 4 + i));
|
||||
sb.append(args[0].substring(i + 2, i + 4));
|
||||
|
||||
sb.append(new /*1
|
||||
|
||||
*/String(/* 2 */"foo")/*3 */./* 4*/substring(i/*5\n*/+2, i/*\n\r6 */+3))
|
||||
|
||||
String s1 = "xxx" + args[0].substring(3, 5);
|
||||
String s2 = "xxx" + args[0].substring(3, 4);
|
||||
String s3 = args[0].substring(2, 3) + "xxx";
|
||||
|
||||
boolean value = args[0].substring(4, 5).equals("_");
|
||||
|
||||
if(args[0].substring(4, 5).equals("_")) { }
|
||||
if(!args[0].substring(4, 5).equals("_")) { }
|
||||
if(!!args[0].substring(4, 5).equals("_")) { }
|
||||
if(!!!!!args[0].substring(4, 5).equals("_")) { }
|
||||
|
||||
System.out.print(args[0].substring(2, 3));
|
||||
System.out.println(args[0].substring(2, 3));
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
// "Fix all 'Redundant String operation' problems in file" "true"
|
||||
class Foo {
|
||||
public static void main(String[] args) {
|
||||
|
||||
boolean value = args[0].substring(4, 5).equals("_");
|
||||
|
||||
if(args[0].sub<caret>string(4, 5).equals("_")) { }
|
||||
if(!args[0].substring(4, 5).equals("_")) { }
|
||||
if(!!args[0].substring(4, 5).equals("_")) { }
|
||||
if(!!!!!args[0].substring(4, 5).equals("_")) { }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user