Skip to content

Commit 8f43ce6

Browse files
committed
Fix Ghost Not Found Position
1 parent d4e1e51 commit 8f43ce6

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

  • liquidjava-verifier/src/main/java/liquidjava/processor/refinement_checker/object_checkers

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,9 @@ private static ObjectState getStates(CtAnnotation<? extends Annotation> ctAnnota
206206
*/
207207
private static Predicate createStatePredicate(String value, String targetClass, TypeChecker tc, CtElement e,
208208
boolean isTo, String prefix) throws LJError {
209+
SourcePosition position = Utils.getLJAnnotationPosition(e, value);
209210
Predicate p = new Predicate(value, e, prefix);
210211
if (!p.getExpression().isBooleanExpression()) {
211-
SourcePosition position = Utils.getLJAnnotationPosition(e, value);
212212
throw new InvalidRefinementError(position, "State refinement transition must be a boolean expression",
213213
value);
214214
}
@@ -233,11 +233,9 @@ private static Predicate createStatePredicate(String value, String targetClass,
233233
Predicate c1 = isTo ? getMissingStates(targetClass, tc, p) : p;
234234
Predicate c = c1.substituteVariable(Keys.THIS, name);
235235
c = c.changeOldMentions(nameOld, name);
236-
boolean ok = tc.checkStateSMT(new Predicate(), c.negate(), e.getPosition(), true);
237-
if (ok) {
238-
SourcePosition pos = Utils.getLJAnnotationPosition(e, value);
239-
tc.throwStateConflictError(pos, p);
240-
}
236+
boolean ok = tc.checkStateSMT(new Predicate(), c.negate(), position, true);
237+
if (ok)
238+
tc.throwStateConflictError(position, p);
241239
return c1;
242240
}
243241

0 commit comments

Comments
 (0)