Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/EnumImplementsInterface.java
Nikita Eshkeev 61712f77ac [codeInsight] IDEA-236735 Java enum constant is called "Anonymous inner class"
There used to be a vague error message for enum constants that don't
implement methods from an interface which refers to them as
'Anonymous class deriving from *Enum'. This patch makes the message clear
displaying the real names of the enum constants in the error message.

Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>

GitOrigin-RevId: 700bc2b579e0c8552858ab881d9a3e4e8d81b1f8
2020-04-24 15:29:10 +00:00

42 lines
930 B
Java

interface MyInterface {
void method1();
}
<error descr="Class 'SampleEnum1' must either be declared abstract or implement abstract method 'method1()' in 'MyInterface'">enum SampleEnum1 implements MyInterface</error> {
ONE;
}
enum SampleEnum2 implements MyInterface {
<error descr="Enum constant 'ONE' must implement abstract method 'method1()' in 'MyInterface'">ONE</error>{};
}
enum SampleEnum3 implements MyInterface {
ONE;
@Override
public void method1() { }
}
enum SampleEnum4 implements MyInterface {
ONE {
@Override
public void method1() { }
};
}
enum SampleEnum5 implements MyInterface {
<error descr="Enum constant 'ONE' must implement abstract method 'method1()' in 'MyInterface'">ONE</error>("one") {};
SampleEnum5(final String name) {}
}
enum SampleEnum6 implements MyInterface {
ONE("one") {
@Override
public void method1() {}
};
SampleEnum6(final String name) {}
}