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(pmd-java:modifiers() = 'static')]
|
||||||
[not(./ancestor::ClassDeclaration[1][pmd-java:hasAnnotation('lombok.experimental.UtilityClass')])]
|
[not(./ancestor::ClassDeclaration[1][pmd-java:hasAnnotation('lombok.experimental.UtilityClass')])]
|
||||||
[not(.//Annotation[pmd-java:typeIs('lombok.Builder.Default')])]
|
[not(.//Annotation[pmd-java:typeIs('lombok.Builder.Default')])]
|
||||||
/VariableDeclarator[*[pmd-java:nodeIs('Literal')]
|
/VariableDeclarator[*[last()][@CompileTimeConstant = true()
|
||||||
or VariableAccess[@Name = //FieldDeclaration[pmd-java:modifiers() = 'static']/VariableDeclarator/VariableId/@Name]
|
or self::VariableAccess[@Name = //FieldDeclaration[pmd-java:modifiers() = 'static']/VariableDeclarator/VariableId/@Name]
|
||||||
or FieldAccess
|
or self::FieldAccess
|
||||||
or ArrayAllocation/ArrayType/ArrayDimensions/ArrayDimExpr/NumericLiteral[@IntLiteral = true()][@Image = "0"]]
|
or self::ArrayAllocation/ArrayType/ArrayDimensions/ArrayDimExpr/NumericLiteral[@IntLiteral = true()][@Image = "0"]]]
|
||||||
/VariableId
|
/VariableId
|
||||||
[not(@Name = //MethodDeclaration[not(pmd-java:modifiers() = 'static')]
|
[not(@Name = //MethodDeclaration[not(pmd-java:modifiers() = 'static')]
|
||||||
//SynchronizedStatement/(VariableAccess|FieldAccess[ThisExpression])/@Name)]
|
//SynchronizedStatement/(VariableAccess|FieldAccess[ThisExpression])/@Name)]
|
||||||
|
Reference in New Issue
Block a user