Skip to content

Commit b5a26e8

Browse files
committed
SONARJAVA-1503 Enum constants are implicitely final
1 parent 4dde3d8 commit b5a26e8

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

java-squid/src/main/java/org/sonar/java/resolve/FirstPass.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,8 @@ public void visitMethod(MethodTree tree) {
323323

324324
@Override
325325
public void visitEnumConstant(EnumConstantTree tree) {
326-
declareVariable(Flags.PUBLIC | Flags.STATIC | Flags.ENUM, tree.simpleName(), (VariableTreeImpl) tree);
326+
// JLS-8.9.3
327+
declareVariable(Flags.PUBLIC | Flags.STATIC | Flags.FINAL | Flags.ENUM, tree.simpleName(), (VariableTreeImpl) tree);
327328
super.visitEnumConstant(tree);
328329
}
329330

java-squid/src/test/java/org/sonar/java/resolve/SymbolTableTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ public void EnumDeclaration() {
300300

301301
JavaSymbol.VariableJavaSymbol variableSymbol = (JavaSymbol.VariableJavaSymbol) result.symbol("FIRST_CONSTANT");
302302
assertThat(variableSymbol.owner()).isSameAs(enumSymbol);
303-
assertThat(variableSymbol.flags()).isEqualTo(Flags.PUBLIC | Flags.STATIC | Flags.ENUM);
303+
assertThat(variableSymbol.flags()).isEqualTo(Flags.PUBLIC | Flags.STATIC | Flags.FINAL | Flags.ENUM);
304304

305305
JavaSymbol.TypeJavaSymbol anonymousSymbol = (JavaSymbol.TypeJavaSymbol) result.symbol("method", 11).owner();
306306
assertThat(anonymousSymbol.name).isEqualTo("");
@@ -311,7 +311,7 @@ public void EnumDeclaration() {
311311

312312
variableSymbol = (JavaSymbol.VariableJavaSymbol) result.symbol("SECOND_CONSTANT");
313313
assertThat(variableSymbol.owner()).isSameAs(enumSymbol);
314-
assertThat(variableSymbol.flags()).isEqualTo(Flags.PUBLIC | Flags.STATIC | Flags.ENUM);
314+
assertThat(variableSymbol.flags()).isEqualTo(Flags.PUBLIC | Flags.STATIC | Flags.FINAL | Flags.ENUM);
315315

316316
anonymousSymbol = (JavaSymbol.TypeJavaSymbol) result.symbol("method", 16).owner();
317317
assertThat(anonymousSymbol.name).isEqualTo("");

0 commit comments

Comments
 (0)