Skip to content

Commit 4dde3d8

Browse files
benzonicoWohops
authored andcommitted
SONARJAVA-1501 Enum constants are implicitely static
1 parent b5843cf commit 4dde3d8

4 files changed

Lines changed: 13 additions & 3 deletions

File tree

its/ruling/src/test/resources/sonar-server/squid-S2325.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@
190190
193,
191191
],
192192
'org.codehaus.sonar:sonar-server:src/main/java/org/sonar/server/permission/InternalPermissionService.java':[
193+
246,
193194
261,
194195
268,
195196
],

java-checks/src/test/files/checks/StaticMethodCheck.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,12 @@ private void recursive() { // Noncompliant
9191
recursive();
9292
}
9393
}
94+
95+
static class FooBar {
96+
enum MyEnum{
97+
FOO;
98+
}
99+
private void plop() { // Noncompliant enum is static and enum constants are static
100+
Object o = MyEnum.FOO;
101+
}
102+
}

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

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

324324
@Override
325325
public void visitEnumConstant(EnumConstantTree tree) {
326-
declareVariable(Flags.PUBLIC | Flags.ENUM, tree.simpleName(), (VariableTreeImpl) tree);
326+
declareVariable(Flags.PUBLIC | Flags.STATIC | Flags.ENUM, tree.simpleName(), (VariableTreeImpl) tree);
327327
super.visitEnumConstant(tree);
328328
}
329329

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.ENUM);
303+
assertThat(variableSymbol.flags()).isEqualTo(Flags.PUBLIC | Flags.STATIC | 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.ENUM);
314+
assertThat(variableSymbol.flags()).isEqualTo(Flags.PUBLIC | Flags.STATIC | Flags.ENUM);
315315

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

0 commit comments

Comments
 (0)