File tree Expand file tree Collapse file tree
liquidjava-verifier/src/main/java/liquidjava/processor/refinement_checker Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1313import liquidjava .processor .refinement_checker .object_checkers .AuxStateHandler ;
1414import liquidjava .rj_language .BuiltinFunctionPredicate ;
1515import liquidjava .rj_language .Predicate ;
16+ import liquidjava .rj_language .ast .Enum ;
1617import liquidjava .utils .StaticConstants ;
1718import liquidjava .utils .constants .Formats ;
1819import 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
You can’t perform that action at this time.
0 commit comments