Skip to content

Commit 62a2d27

Browse files
graememorganError Prone Team
authored andcommitted
An update on StringEquality.
It seems redundant in the face of ReferenceEquality as a general check. The value it _could_ have is turning this into an error, except it doesn't. PiperOrigin-RevId: 438536211
1 parent ce2e0f7 commit 62a2d27

File tree

8 files changed

+24
-208
lines changed

8 files changed

+24
-208
lines changed

core/src/main/java/com/google/errorprone/bugpatterns/AbstractReferenceEquality.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@
4545
* Abstract implementation of a BugPattern that detects the use of reference equality to compare
4646
* classes with value semantics.
4747
*
48-
* <p>See e.g. {@link OptionalEquality}, {@link ProtoStringFieldReferenceEquality}, and {@link
49-
* StringEquality}.
48+
* <p>See e.g. {@link OptionalEquality}, {@link ProtoStringFieldReferenceEquality}.
5049
*
5150
* @author [email protected] (Liam Miller-Cushon)
5251
*/

core/src/main/java/com/google/errorprone/bugpatterns/StringEquality.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

core/src/main/java/com/google/errorprone/scanner/BuiltInCheckerSuppliers.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,6 @@
316316
import com.google.errorprone.bugpatterns.StreamToIterable;
317317
import com.google.errorprone.bugpatterns.StreamToString;
318318
import com.google.errorprone.bugpatterns.StringBuilderInitWithChar;
319-
import com.google.errorprone.bugpatterns.StringEquality;
320319
import com.google.errorprone.bugpatterns.StringSplitter;
321320
import com.google.errorprone.bugpatterns.StronglyTypeByteString;
322321
import com.google.errorprone.bugpatterns.SubstringOfZero;
@@ -1090,7 +1089,6 @@ public static ScannerSupplier errorChecks() {
10901089
ScopeOrQualifierAnnotationRetention.class,
10911090
StaticOrDefaultInterfaceMethod.class,
10921091
StaticQualifiedUsingExpression.class,
1093-
StringEquality.class,
10941092
StronglyTypeByteString.class,
10951093
StronglyTypeTime.class,
10961094
SuppressWarningsWithoutExplanation.class,

core/src/test/java/com/google/errorprone/bugpatterns/StringEqualityTest.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

core/src/test/java/com/google/errorprone/bugpatterns/testdata/StringEqualityNegativeCases.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

core/src/test/java/com/google/errorprone/bugpatterns/testdata/StringEqualityPositiveCases.java

Lines changed: 0 additions & 60 deletions
This file was deleted.

core/src/test/java/com/google/errorprone/scanner/ScannerSupplierTest.java

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
import com.google.errorprone.bugpatterns.EqualsIncompatibleType;
4949
import com.google.errorprone.bugpatterns.LongLiteralLowerCaseSuffix;
5050
import com.google.errorprone.bugpatterns.PackageLocation;
51+
import com.google.errorprone.bugpatterns.ReferenceEquality;
5152
import com.google.errorprone.bugpatterns.StaticQualifiedUsingExpression;
52-
import com.google.errorprone.bugpatterns.StringEquality;
5353
import com.google.errorprone.bugpatterns.nullness.UnnecessaryCheckNotNull;
5454
import com.sun.source.util.JavacTask;
5555
import com.sun.tools.javac.api.JavacTool;
@@ -331,10 +331,10 @@ public void applyOverridesEnableAllChecks() {
331331

332332
@Test
333333
public void applyOverridesDisableErrors() {
334-
// BadShiftAmount (error), ArrayEquals (unsuppressible error), StringEquality (warning)
334+
// BadShiftAmount (error), ArrayEquals (unsuppressible error), ReferenceEquality (warning)
335335
ScannerSupplier ss =
336336
ScannerSupplier.fromBugCheckerClasses(
337-
BadShiftAmount.class, UnsuppressibleArrayEquals.class, StringEquality.class);
337+
BadShiftAmount.class, UnsuppressibleArrayEquals.class, ReferenceEquality.class);
338338

339339
ErrorProneOptions epOptions =
340340
ErrorProneOptions.processArgs(ImmutableList.of("-XepAllErrorsAsWarnings"));
@@ -344,31 +344,31 @@ public void applyOverridesDisableErrors() {
344344
ImmutableMap.of(
345345
"ArrayEquals", SeverityLevel.ERROR, // Unsuppressible, not demoted
346346
"BadShiftAmount", SeverityLevel.WARNING, // Demoted from error to warning
347-
"StringEquality", SeverityLevel.WARNING)); // Already warning, unaffected
347+
"ReferenceEquality", SeverityLevel.WARNING)); // Already warning, unaffected
348348

349349
// Flags after AllErrorsAsWarnings flag should override it.
350350
epOptions =
351351
ErrorProneOptions.processArgs(
352-
ImmutableList.of("-XepAllErrorsAsWarnings", "-Xep:StringEquality:ERROR"));
352+
ImmutableList.of("-XepAllErrorsAsWarnings", "-Xep:ReferenceEquality:ERROR"));
353353

354354
assertScanner(ss.applyOverrides(epOptions))
355355
.hasSeverities(
356356
ImmutableMap.of(
357357
"ArrayEquals", SeverityLevel.ERROR,
358358
"BadShiftAmount", SeverityLevel.WARNING,
359-
"StringEquality", SeverityLevel.ERROR));
359+
"ReferenceEquality", SeverityLevel.ERROR));
360360

361361
// AllErrorsAsWarnings flag should override all error-level severity flags that come before it.
362362
epOptions =
363363
ErrorProneOptions.processArgs(
364-
ImmutableList.of("-Xep:StringEquality:ERROR", "-XepAllErrorsAsWarnings"));
364+
ImmutableList.of("-Xep:ReferenceEquality:ERROR", "-XepAllErrorsAsWarnings"));
365365

366366
assertScanner(ss.applyOverrides(epOptions))
367367
.hasSeverities(
368368
ImmutableMap.of(
369369
"ArrayEquals", SeverityLevel.ERROR,
370370
"BadShiftAmount", SeverityLevel.WARNING,
371-
"StringEquality", SeverityLevel.WARNING));
371+
"ReferenceEquality", SeverityLevel.WARNING));
372372

373373
// AllErrorsAsWarnings only overrides error-level severity flags.
374374
// That is, checks disabled before the flag are left disabled, not promoted to warnings.
@@ -380,9 +380,9 @@ public void applyOverridesDisableErrors() {
380380
.hasSeverities(
381381
ImmutableMap.of(
382382
"ArrayEquals", SeverityLevel.ERROR,
383-
"StringEquality", SeverityLevel.WARNING));
383+
"ReferenceEquality", SeverityLevel.WARNING));
384384
assertScanner(ss.applyOverrides(epOptions))
385-
.hasEnabledChecks(UnsuppressibleArrayEquals.class, StringEquality.class);
385+
.hasEnabledChecks(UnsuppressibleArrayEquals.class, ReferenceEquality.class);
386386
}
387387

388388
@Test
@@ -465,18 +465,20 @@ public void applyOverridesSucceedsWhenDisablingUnknownCheckAndIgnoreUnknownCheck
465465
public void applyOverridesSetsSeverity() {
466466
ScannerSupplier ss =
467467
ScannerSupplier.fromBugCheckerClasses(
468-
BadShiftAmount.class, ChainingConstructorIgnoresParameter.class, StringEquality.class);
468+
BadShiftAmount.class,
469+
ChainingConstructorIgnoresParameter.class,
470+
ReferenceEquality.class);
469471
ErrorProneOptions epOptions =
470472
ErrorProneOptions.processArgs(
471473
ImmutableList.of(
472-
"-Xep:ChainingConstructorIgnoresParameter:WARN", "-Xep:StringEquality:ERROR"));
474+
"-Xep:ChainingConstructorIgnoresParameter:WARN", "-Xep:ReferenceEquality:ERROR"));
473475
ScannerSupplier overriddenScannerSupplier = ss.applyOverrides(epOptions);
474476

475477
ImmutableMap<String, SeverityLevel> expected =
476478
ImmutableMap.of(
477479
"BadShiftAmount", SeverityLevel.ERROR,
478480
"ChainingConstructorIgnoresParameter", SeverityLevel.WARNING,
479-
"StringEquality", SeverityLevel.ERROR);
481+
"ReferenceEquality", SeverityLevel.ERROR);
480482

481483
assertScanner(overriddenScannerSupplier).hasSeverities(expected);
482484
}
@@ -507,35 +509,37 @@ public void allChecksAsWarningsWorks() {
507509
ScannerSupplier.fromBugCheckerClasses(
508510
BadShiftAmount.class,
509511
ChainingConstructorIgnoresParameter.class,
510-
StringEquality.class)
512+
ReferenceEquality.class)
511513
.filter(Predicates.alwaysFalse());
512514
assertScanner(ss).hasEnabledChecks(); // Everything's off
513515

514516
ErrorProneOptions epOptions =
515517
ErrorProneOptions.processArgs(
516-
ImmutableList.of("-Xep:StringEquality:OFF", "-XepAllDisabledChecksAsWarnings"));
518+
ImmutableList.of("-Xep:ReferenceEquality:OFF", "-XepAllDisabledChecksAsWarnings"));
517519

518520
ScannerSupplier withOverrides = ss.applyOverrides(epOptions);
519521
assertScanner(withOverrides)
520522
.hasEnabledChecks(
521-
BadShiftAmount.class, ChainingConstructorIgnoresParameter.class, StringEquality.class);
523+
BadShiftAmount.class,
524+
ChainingConstructorIgnoresParameter.class,
525+
ReferenceEquality.class);
522526

523527
ImmutableMap<String, SeverityLevel> expectedSeverities =
524528
ImmutableMap.of(
525529
"BadShiftAmount",
526530
SeverityLevel.WARNING,
527531
"ChainingConstructorIgnoresParameter",
528532
SeverityLevel.WARNING,
529-
"StringEquality",
533+
"ReferenceEquality",
530534
SeverityLevel.WARNING);
531535
assertScanner(withOverrides).hasSeverities(expectedSeverities);
532536

533537
epOptions =
534538
ErrorProneOptions.processArgs(
535539
ImmutableList.of(
536-
"-Xep:StringEquality:OFF",
540+
"-Xep:ReferenceEquality:OFF",
537541
"-XepAllDisabledChecksAsWarnings",
538-
"-Xep:StringEquality:OFF"));
542+
"-Xep:ReferenceEquality:OFF"));
539543

540544
withOverrides = ss.applyOverrides(epOptions);
541545
assertScanner(withOverrides)

docs/bugpattern/StringEquality.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)