Skip to content

Commit 6d87ec5

Browse files
authored
Exclude Static Final Constants from Instance Field Ghosts (#313)
1 parent fbfb4e2 commit 6d87ec5

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import liquidjava.specification.Refinement;
2+
3+
public class CorrectStaticFinalUsedAsArgument {
4+
private static final int BUFFER = 64;
5+
6+
static void use(@Refinement("_ > 0") int n) {}
7+
8+
public static void main(String[] args) {
9+
use(BUFFER);
10+
}
11+
}

‎liquidjava-verifier/src/main/java/liquidjava/processor/ann_generation/FieldGhostsGeneration.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ public Factory getFactory() {
2626

2727
@Override
2828
public <T> void visitCtClass(CtClass<T> ctClass) {
29-
ctClass.getDeclaredFields().stream().filter(fld -> fld.getType().getQualifiedName().equals("int"))
29+
ctClass.getDeclaredFields().stream()
30+
.filter(fld -> !(fld.isStatic() && fld.isFinal()) && fld.getType().getQualifiedName().equals("int"))
3031
.forEach(fld -> {
3132
CtTypeReference<?> fldType = fld.getType();
3233
CtAnnotation<?> genAnn = factory.createAnnotation(factory.createCtTypeReference(Ghost.class));

0 commit comments

Comments
 (0)