Skip to content

Commit 81a741d

Browse files
committed
Use Annotation Position in Invalid Refinement Errors
1 parent 418bec8 commit 81a741d

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

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

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ public Optional<Predicate> getRefinementFromAnnotation(CtElement element) throws
8181
if (ref.isPresent()) {
8282
Predicate p = new Predicate(ref.get(), element);
8383
if (!p.getExpression().isBooleanExpression()) {
84-
throw new InvalidRefinementError(element.getPosition(),
84+
SourcePosition position = Utils.getAnnotationPosition(element, ref.get());
85+
throw new InvalidRefinementError(position,
8586
"Refinement predicate must be a boolean expression", ref.get());
8687
}
8788
constr = Optional.of(p);
@@ -250,7 +251,7 @@ protected void handleAlias(String ref, CtElement element, SourcePosition positio
250251
if (klass != null && path != null) {
251252
a.parse(path);
252253
if (a.getExpression() != null && !a.getExpression().isBooleanExpression()) {
253-
throw new InvalidRefinementError(element.getPosition(),
254+
throw new InvalidRefinementError(position,
254255
"Refinement alias must return a boolean expression", ref);
255256
}
256257
AliasWrapper aw = new AliasWrapper(a, factory, klass, path);

0 commit comments

Comments
 (0)