False alarm from ClassInitializationDeadlock for inner enum implementing outer interface with default method (original) (raw)

Error Prone 2.27.0 produces a ClassInitializationDeadlock warning for the following code:

public interface TestInterface {

default Object foo() { return null; }

public enum TestEnum implements TestInterface { INSTANCE; } }

The exact message is

TestInterface.java:8: warning: [ClassInitializationDeadlock] Possible class initialization deadlock: TestEnum is a subclass of the containing class TestInterface
    INSTANCE;
    ^
    (see https://errorprone.info/bugpattern/ClassInitializationDeadlock)

Interestingly, it does not happen with a class instead of an enum, nor if I remove the default method.

My assumption is that this is a false alarm, because I don't see how initializing TestInterface would require initializing TestEnum.