Skip to content

Commit 78310fc

Browse files
committed
SONAJRAVA-1388 Use semantic API instead of only looking for 'final' modifier
1 parent 94c8d80 commit 78310fc

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

java-checks/src/main/java/org/sonar/java/checks/MagicNumberCheck.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.sonar.check.Priority;
2424
import org.sonar.check.Rule;
2525
import org.sonar.check.RuleProperty;
26-
import org.sonar.java.model.ModifiersUtils;
2726
import org.sonar.java.tag.Tag;
2827
import org.sonar.plugins.java.api.JavaFileScanner;
2928
import org.sonar.plugins.java.api.JavaFileScannerContext;
@@ -32,7 +31,6 @@
3231
import org.sonar.plugins.java.api.tree.EnumConstantTree;
3332
import org.sonar.plugins.java.api.tree.ExpressionTree;
3433
import org.sonar.plugins.java.api.tree.LiteralTree;
35-
import org.sonar.plugins.java.api.tree.Modifier;
3634
import org.sonar.plugins.java.api.tree.NewArrayTree;
3735
import org.sonar.plugins.java.api.tree.Tree;
3836
import org.sonar.plugins.java.api.tree.Tree.Kind;
@@ -122,7 +120,7 @@ public void visitAnnotation(AnnotationTree annotationTree) {
122120
public void visitVariable(VariableTree tree) {
123121
ExpressionTree initializer = tree.initializer();
124122
boolean arrayNotInitialized = initializer != null && initializer.is(Kind.NEW_ARRAY) && ((NewArrayTree) initializer).initializers().isEmpty();
125-
if (arrayNotInitialized || !ModifiersUtils.hasModifier(tree.modifiers(), Modifier.FINAL)) {
123+
if (arrayNotInitialized || !tree.symbol().isFinal()) {
126124
super.visitVariable(tree);
127125
}
128126
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,7 @@ protected char[] initialValue() {
8080

8181
int nothing;
8282
}
83+
84+
interface I {
85+
int VALUE = 42; // Compliant
86+
}

0 commit comments

Comments
 (0)