Skip to content

Commit 8bb0b42

Browse files
committed
Use readable qualified field names
1 parent 4cf6617 commit 8bb0b42

2 files changed

Lines changed: 11 additions & 15 deletions

File tree

‎liquidjava-verifier/src/main/java/liquidjava/processor/refinement_checker/object_checkers/AuxStateHandler.java‎

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -181,13 +181,13 @@ private static ObjectState getStates(CtAnnotation<? extends Annotation> ctAnnota
181181

182182
// has from
183183
if (from != null) {
184-
state.setFrom(createStatePredicate(from, f.getTargetClass(), tc, e, false, prefix));
184+
state.setFrom(createStatePredicate(new Predicate(from, e, prefix), from, f.getTargetClass(), tc, e, false));
185185
state.setFromPosition(Utils.getLJAnnotationPosition(e, from));
186186
}
187187

188188
// has to
189189
if (to != null) {
190-
state.setTo(createStatePredicate(to, f.getTargetClass(), tc, e, true, prefix));
190+
state.setTo(createStatePredicate(new Predicate(to, e, prefix), to, f.getTargetClass(), tc, e, true));
191191
state.setToPosition(Utils.getLJAnnotationPosition(e, to));
192192
}
193193

@@ -210,10 +210,9 @@ private static ObjectState getStates(CtAnnotation<? extends Annotation> ctAnnota
210210
*
211211
* @return the created predicate
212212
*/
213-
private static Predicate createStatePredicate(String value, String targetClass, TypeChecker tc, CtElement e,
214-
boolean isTo, String prefix) throws LJError {
213+
private static Predicate createStatePredicate(Predicate p, String value, String targetClass, TypeChecker tc,
214+
CtElement e, boolean isTo) throws LJError {
215215
SourcePosition position = Utils.getLJAnnotationPosition(e, value);
216-
Predicate p = new Predicate(value, e, prefix);
217216
if (!p.getExpression().isBooleanExpression()) {
218217
throw new InvalidRefinementError(position, "State refinement transition must be a boolean expression",
219218
value);
@@ -422,8 +421,12 @@ public static void updateGhostField(CtFieldWrite<?> fw, TypeChecker tc) throws L
422421

423422
ObjectState stateChange = new ObjectState();
424423
String prefix = field.getDeclaringType().getQualifiedName();
425-
Predicate fromPredicate = createStatePredicate(stateChangeRefinementFrom, targetClass, tc, fw, false, prefix);
426-
Predicate toPredicate = createStatePredicate(stateChangeRefinementTo, targetClass, tc, fw, true, prefix);
424+
Predicate fromPredicate = createStatePredicate(new Predicate(), stateChangeRefinementFrom, targetClass, tc, fw,
425+
false);
426+
Predicate toPredicate = Predicate.createEquals(Predicate
427+
.createInvocation(Utils.qualifyName(prefix, field.getSimpleName()), Predicate.createVar(Keys.THIS)),
428+
Predicate.createVar(updatedVarName));
429+
toPredicate = createStatePredicate(toPredicate, stateChangeRefinementTo, targetClass, tc, fw, true);
427430
stateChange.setFrom(fromPredicate);
428431
stateChange.setTo(toPredicate);
429432

‎liquidjava-verifier/src/main/java/liquidjava/utils/FieldNames.java‎

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,6 @@ private FieldNames() {
77
}
88

99
public static String of(CtFieldReference<?> field) {
10-
StringBuilder name = new StringBuilder("this#");
11-
field.getDeclaringType().getQualifiedName().codePoints().forEach(c -> {
12-
if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9' || c == '_')
13-
name.appendCodePoint(c);
14-
else
15-
name.append('#').append(Integer.toHexString(c)).append('#');
16-
});
17-
return name.append('#').append(field.getSimpleName()).toString();
10+
return "this#" + field.getDeclaringType().getQualifiedName() + "." + field.getSimpleName();
1811
}
1912
}

0 commit comments

Comments
 (0)