Skip to content

Commit a8c85fa

Browse files
klueverError Prone Team
authored andcommitted
Don't flag Optional parameters inside @AutoValue.Builder.
PiperOrigin-RevId: 901286959
1 parent 7f34489 commit a8c85fa

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import static com.google.errorprone.predicates.TypePredicates.not;
2626
import static com.google.errorprone.util.ASTHelpers.getSymbol;
2727
import static com.google.errorprone.util.ASTHelpers.getType;
28+
import static com.google.errorprone.util.ASTHelpers.hasAnnotation;
2829
import static com.google.errorprone.util.ASTHelpers.isRecord;
2930
import static com.google.errorprone.util.ASTHelpers.isSameType;
3031
import static com.google.errorprone.util.ASTHelpers.methodIsPublicAndNotAnOverride;
@@ -88,7 +89,11 @@ public final class NonApiType extends BugChecker implements MethodTreeMatcher {
8889
// Optionals
8990
withPublicVisibility(
9091
isExactType("java.util.Optional"),
91-
NON_GRAPH_WRAPPER,
92+
(type, state) ->
93+
NON_GRAPH_WRAPPER.apply(type, state)
94+
// NOTE(b/503669492): allow Optional parameters in @AutoValue.Builder methods
95+
&& !hasAnnotation(
96+
type.tsym, "com.google.auto.value.AutoValue.Builder", state),
9297
"Avoid Optional parameters. " + OPTIONAL_AS_PARAM_LINK,
9398
ApiElementType.PARAMETER),
9499
withPublicVisibility(

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,6 @@ public abstract class User {
163163
164164
@AutoValue.Builder
165165
public abstract static class Builder {
166-
// TODO(b/503669492): we probably shouldn't flag this!
167-
// BUG: Diagnostic contains: Avoid Optional parameters
168166
public abstract Builder setMiddleName(Optional<String> middleName);
169167
170168
public abstract User build();

0 commit comments

Comments
 (0)