forked from phoedos/pmd
Fix #2440
- Extend FinalFieldCouldBeStatic to consider all compile-time constants and not only single literals.
This commit is contained in:
@@ -733,10 +733,10 @@ in each object at runtime.
|
||||
[not(pmd-java:modifiers() = 'static')]
|
||||
[not(./ancestor::ClassDeclaration[1][pmd-java:hasAnnotation('lombok.experimental.UtilityClass')])]
|
||||
[not(.//Annotation[pmd-java:typeIs('lombok.Builder.Default')])]
|
||||
/VariableDeclarator[*[pmd-java:nodeIs('Literal')]
|
||||
or VariableAccess[@Name = //FieldDeclaration[pmd-java:modifiers() = 'static']/VariableDeclarator/VariableId/@Name]
|
||||
or FieldAccess
|
||||
or ArrayAllocation/ArrayType/ArrayDimensions/ArrayDimExpr/NumericLiteral[@IntLiteral = true()][@Image = "0"]]
|
||||
/VariableDeclarator[*[last()][@CompileTimeConstant = true()
|
||||
or self::VariableAccess[@Name = //FieldDeclaration[pmd-java:modifiers() = 'static']/VariableDeclarator/VariableId/@Name]
|
||||
or self::FieldAccess
|
||||
or self::ArrayAllocation/ArrayType/ArrayDimensions/ArrayDimExpr/NumericLiteral[@IntLiteral = true()][@Image = "0"]]]
|
||||
/VariableId
|
||||
[not(@Name = //MethodDeclaration[not(pmd-java:modifiers() = 'static')]
|
||||
//SynchronizedStatement/(VariableAccess|FieldAccess[ThisExpression])/@Name)]
|
||||
|
Reference in New Issue
Block a user