Skip to content

Commit ba5dfa9

Browse files
graememorganError Prone Team
authored and
Error Prone Team
committed
Add a UnnecessarilyFullyQualified:BatchFindings flag to support re-enabling UnnecessarilyFullyQualified in Tricorder.
PiperOrigin-RevId: 753573653
1 parent 8d811b9 commit ba5dfa9

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

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

+7
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,13 @@ public final class UnnecessarilyFullyQualified extends BugChecker
8888
*/
8989
private final ImmutableSet<String> exemptedEnclosingTypes;
9090

91+
private final boolean batchFindings;
92+
9193
@Inject
9294
UnnecessarilyFullyQualified(ErrorProneFlags errorProneFlags) {
9395
this.exemptedEnclosingTypes = errorProneFlags.getSetOrEmpty("BadImport:BadEnclosingTypes");
96+
this.batchFindings =
97+
errorProneFlags.getBoolean("UnnecessarilyFullyQualified:BatchFindings").orElse(false);
9498
}
9599

96100
@Override
@@ -255,6 +259,9 @@ public Void visitIdentifier(IdentifierTree identifierTree, Void aVoid) {
255259
SuggestedFix fix = fixBuilder.build();
256260
for (TreePath path : pathsToFix) {
257261
state.reportMatch(describeMatch(path.getLeaf(), fix));
262+
if (this.batchFindings) {
263+
break;
264+
}
258265
}
259266
}
260267
return NO_MATCH;

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

+37
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ public final class UnnecessarilyFullyQualifiedTest {
2727
private final BugCheckerRefactoringTestHelper helper =
2828
BugCheckerRefactoringTestHelper.newInstance(UnnecessarilyFullyQualified.class, getClass());
2929

30+
private final CompilationTestHelper compilationHelper =
31+
CompilationTestHelper.newInstance(UnnecessarilyFullyQualified.class, getClass());
32+
3033
@Test
3134
public void singleUse() {
3235
helper
@@ -397,4 +400,38 @@ abstract class AbstractType {}
397400
.expectUnchanged()
398401
.doTest();
399402
}
403+
404+
@Test
405+
public void unbatchedFindings() {
406+
compilationHelper
407+
.addSourceLines(
408+
"Test.java",
409+
"""
410+
interface Test {
411+
// BUG: Diagnostic contains:
412+
java.util.List foo();
413+
414+
// BUG: Diagnostic contains:
415+
java.util.List bar();
416+
}
417+
""")
418+
.doTest();
419+
}
420+
421+
@Test
422+
public void batchedFindings() {
423+
compilationHelper
424+
.addSourceLines(
425+
"Test.java",
426+
"""
427+
interface Test {
428+
// BUG: Diagnostic contains:
429+
java.util.List foo();
430+
431+
java.util.List bar();
432+
}
433+
""")
434+
.setArgs("-XepOpt:UnnecessarilyFullyQualified:BatchFindings=true")
435+
.doTest();
436+
}
400437
}

0 commit comments

Comments
 (0)