Skip to content

Commit 905cc4f

Browse files
committed
Preserve Static Final Names
1 parent ccb1958 commit 905cc4f

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

liquidjava-verifier/src/main/java/liquidjava/processor/refinement_checker/RefinementTypeChecker.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import liquidjava.processor.refinement_checker.object_checkers.AuxStateHandler;
1414
import liquidjava.rj_language.BuiltinFunctionPredicate;
1515
import liquidjava.rj_language.Predicate;
16+
import liquidjava.rj_language.ast.Enum;
1617
import liquidjava.utils.StaticConstants;
1718
import liquidjava.utils.constants.Formats;
1819
import liquidjava.utils.constants.Keys;
@@ -284,12 +285,16 @@ public <T> void visitCtFieldRead(CtFieldRead<T> fieldRead) {
284285
super.visitCtFieldRead(fieldRead);
285286
}
286287

287-
/** Resolve a {@code static final} primitive/String constant to {@code #wild == <literal>}. */
288+
/** Resolve a {@code static final} primitive/String constant to {@code #wild == Type.CONST}. */
288289
private <T> boolean tryStaticFinalConstantRefinement(CtFieldRead<T> fieldRead) {
289290
Predicate literal = StaticConstants.asLiteralPredicate(StaticConstants.resolve(fieldRead.getVariable()));
290291
if (literal == null)
291292
return false;
292-
fieldRead.putMetadata(Keys.REFINEMENT, Predicate.createEquals(Predicate.createVar(Keys.WILDCARD), literal));
293+
Enum constant = new Enum(fieldRead.getVariable().getDeclaringType().getSimpleName(),
294+
fieldRead.getVariable().getSimpleName());
295+
constant.setResolvedLiteral(literal.getExpression());
296+
fieldRead.putMetadata(Keys.REFINEMENT,
297+
Predicate.createEquals(Predicate.createVar(Keys.WILDCARD), new Predicate(constant)));
293298
return true;
294299
}
295300

0 commit comments

Comments
 (0)