From b8942054d2dc23396dcfc06d4101a162363cdd66 Mon Sep 17 00:00:00 2001 From: openamiguel Date: Thu, 12 Aug 2021 14:12:50 -0700 Subject: [PATCH] Fix Issue 2393 Fix for Issue #2393 (WrongOneof mishandles new style switch statement) based on PR #2371 and PR #2124. Fixes #2470 COPYBARA_INTEGRATE_REVIEW=https://github.com/google/error-prone/pull/2470 from openamiguel:master 148cf4d049e7211393fb2cd622b0aefbb5d4a8c2 PiperOrigin-RevId: 390456921 --- .../com/google/errorprone/bugpatterns/WrongOneof.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/WrongOneof.java b/core/src/main/java/com/google/errorprone/bugpatterns/WrongOneof.java index dc6435ab3bc..fedfd8aad1a 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/WrongOneof.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/WrongOneof.java @@ -44,11 +44,13 @@ import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.MemberSelectTree; import com.sun.source.tree.MethodInvocationTree; +import com.sun.source.tree.StatementTree; import com.sun.source.tree.SwitchTree; import com.sun.source.util.TreePath; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.Symbol.VarSymbol; import java.util.HashSet; +import java.util.List; import java.util.Optional; import java.util.Set; @@ -100,8 +102,10 @@ public Description matchSwitch(SwitchTree tree, VisitorState state) { scanForInvalidGetters(getters, allowableGetters, caseTree, receiverSymbolChain.get(), state); - if (!caseTree.getStatements().isEmpty() - && !canCompleteNormally(getLast(caseTree.getStatements()))) { + List statements = caseTree.getStatements(); + if (statements != null + && !statements.isEmpty() + && !canCompleteNormally(getLast(statements))) { allowableGetters.clear(); } }