From 81acea951cf02fb57286ed5df8744c5cbfe24638 Mon Sep 17 00:00:00 2001 From: Alan Malloy Date: Tue, 24 May 2022 11:20:46 -0700 Subject: [PATCH] Don't crash on an "empty" method with a redundant return. PiperOrigin-RevId: 450727959 --- .../bugpatterns/UnsynchronizedOverridesSynchronized.java | 3 ++- .../bugpatterns/UnsynchronizedOverridesSynchronizedTest.java | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronized.java b/core/src/main/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronized.java index 5d7931857d4..f46a0859636 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronized.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronized.java @@ -121,7 +121,8 @@ public Boolean visitBlock(BlockTree tree, Void unused) { @Override public Boolean visitReturn(ReturnTree tree, Void unused) { ExpressionTree expression = tree.getExpression(); - if (constantExpressions.constantExpression(expression, state).isPresent()) { + if (expression == null + || constantExpressions.constantExpression(expression, state).isPresent()) { return true; } return scan(tree.getExpression(), null); diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronizedTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronizedTest.java index 1785d4de1bf..ce97355f5ff 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronizedTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronizedTest.java @@ -157,6 +157,11 @@ public void ignoreEmptyOverride() { " super.f();", " }", " }", + " class D extends Lib {", + " public void f() {", + " return;", + " }", + " }", "}") .doTest(); }