Skip to content

Commit 6a8f493

Browse files
cushonError Prone Team
authored and
Error Prone Team
committed
Don't scan into nested enums in ClassInitializationDeadlock
#4378 PiperOrigin-RevId: 629452163
1 parent c8df502 commit 6a8f493

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public Description matchClass(ClassTree tree, VisitorState state) {
7171
@Override
7272
public Void visitClass(ClassTree node, Void unused) {
7373
for (Tree member : node.getMembers()) {
74-
if (member.getKind().equals(Tree.Kind.CLASS)) {
74+
if (member instanceof ClassTree) {
7575
continue;
7676
}
7777
scan(member, null);

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

+30
Original file line numberDiff line numberDiff line change
@@ -266,4 +266,34 @@ public void negativeNonPrivateUnrelatedSuper() {
266266
"}")
267267
.doTest();
268268
}
269+
270+
@Test
271+
public void nestedEnum() {
272+
testHelper
273+
.addSourceLines(
274+
"TestInterface.java", //
275+
"public interface TestInterface {",
276+
" default Object foo() {",
277+
" return null;",
278+
" }",
279+
" enum TestEnum implements TestInterface {",
280+
" INSTANCE;",
281+
" }",
282+
"}")
283+
.doTest();
284+
}
285+
286+
@Test
287+
public void nestedInterface() {
288+
testHelper
289+
.addSourceLines(
290+
"Foo.java", //
291+
"interface Foo {",
292+
" default void foo() {}",
293+
" interface Sub extends Foo {",
294+
" final Sub INSTANCE = new Sub() {};",
295+
" }",
296+
"}")
297+
.doTest();
298+
}
269299
}

0 commit comments

Comments
 (0)