Skip to content

Commit 3ee6f41

Browse files
graememorganError Prone Team
authored and
Error Prone Team
committed
Fix for a crash in RedundantSetterCall.
[] PiperOrigin-RevId: 627663284
1 parent 92c106d commit 3ee6f41

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import static com.google.errorprone.util.ASTHelpers.getEnclosedElements;
3030
import static com.google.errorprone.util.ASTHelpers.getSymbol;
3131
import static com.google.errorprone.util.ASTHelpers.getType;
32+
import static com.google.errorprone.util.ASTHelpers.getUpperBound;
3233
import static com.google.errorprone.util.ASTHelpers.hasAnnotation;
3334
import static com.google.errorprone.util.ASTHelpers.isAbstract;
3435
import static com.google.errorprone.util.ASTHelpers.isSameType;
@@ -164,7 +165,7 @@ public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState
164165
}
165166

166167
private ImmutableMap<String, OneOfField> scanForOneOfSetters(Type type, VisitorState state) {
167-
var owner = type.tsym.owner;
168+
var owner = getUpperBound(type, state.getTypes()).tsym.owner;
168169
if (owner == null || isSubtype(owner.type, GENERATED_MESSAGE_LITE.get(state), state)) {
169170
return ImmutableMap.of();
170171
}

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,4 +223,19 @@ public void autovalue() {
223223
"}")
224224
.doTest();
225225
}
226+
227+
@Test
228+
public void builderOfWildcardType_noFindings() {
229+
compilationHelper
230+
.addSourceLines(
231+
"Test.java",
232+
"import com.google.protobuf.Descriptors.FieldDescriptor;",
233+
"import com.google.protobuf.GeneratedMessage.Builder;",
234+
"class Test {",
235+
" public void clear(final Builder<?> builder, FieldDescriptor fieldDescriptor) {",
236+
" builder.clearField(fieldDescriptor);",
237+
" }",
238+
"}")
239+
.doTest();
240+
}
226241
}

0 commit comments

Comments
 (0)