Skip to content

Commit 157ce44

Browse files
Stephan202Error Prone Team
authored andcommitted
Have -XepPatchChecks: skip disabled checks
Resolves #4943. Fixes #5102 COPYBARA_INTEGRATE_REVIEW=#5102 from PicnicSupermarket:sschroevers/have-XepPatchChecks-skip-disabled-checks dabd820 PiperOrigin-RevId: 809034699
1 parent 58a1735 commit 157ce44

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

check_api/src/main/java/com/google/errorprone/scanner/ScannerSupplier.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ public ScannerSupplier plus(ScannerSupplier other) {
298298
public ScannerSupplier filter(Predicate<? super BugCheckerInfo> predicate) {
299299
ImmutableSet<String> disabled =
300300
getAllChecks().values().stream()
301-
.filter(predicate.negate())
301+
.filter(bci -> disabled().contains(bci.canonicalName()) || !predicate.test(bci))
302302
.map(BugCheckerInfo::canonicalName)
303303
.collect(ImmutableSet.toImmutableSet());
304304
return new ScannerSupplierImpl(getAllChecks(), severities(), disabled, getFlags());

core/src/test/java/com/google/errorprone/ErrorProneJavaCompilerTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,33 @@ class StringConstantWrapper {
486486
""");
487487
}
488488

489+
@Test
490+
public void patchAllWithDisableAllChecks() throws IOException {
491+
JavaFileObject fileObject =
492+
createOnDiskFileObject(
493+
"StringConstantWrapper.java",
494+
"""
495+
class StringConstantWrapper {
496+
String s = "old-value";
497+
}
498+
""");
499+
500+
CompilationResult result =
501+
doCompile(
502+
Collections.singleton(fileObject),
503+
ImmutableList.of(
504+
"-XepPatchChecks:", "-XepPatchLocation:IN_PLACE", "-XepDisableAllChecks"),
505+
ImmutableList.of(AssignmentUpdater.class));
506+
assertThat(result.succeeded).isTrue();
507+
assertThat(Files.readString(Path.of(fileObject.toUri())))
508+
.isEqualTo(
509+
"""
510+
class StringConstantWrapper {
511+
String s = "old-value";
512+
}
513+
""");
514+
}
515+
489516
@Test
490517
public void patchSingleWithCheckDisabled() throws IOException {
491518
JavaFileObject fileObject =

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,9 @@ public void filterWorks() {
243243
ScannerSupplier.fromBugCheckerClasses(
244244
ArrayEquals.class, BadShiftAmount.class, StaticQualifiedUsingExpression.class);
245245

246-
assertScanner(ss.filter(input -> input.canonicalName().equals("BadShiftAmount")))
246+
ScannerSupplier derivedSupplier = ss.filter(input -> !input.canonicalName().startsWith("S"));
247+
assertScanner(derivedSupplier).hasEnabledChecks(ArrayEquals.class, BadShiftAmount.class);
248+
assertScanner(derivedSupplier.filter(input -> !input.canonicalName().startsWith("A")))
247249
.hasEnabledChecks(BadShiftAmount.class);
248250
}
249251

0 commit comments

Comments
 (0)