Skip to content

Commit 015524c

Browse files
committed
Add Tests
1 parent f09c401 commit 015524c

File tree

5 files changed

+35
-1
lines changed

5 files changed

+35
-1
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Unsatisfiable Refinement Error
2+
package testSuite;
3+
4+
import liquidjava.specification.Refinement;
5+
6+
@SuppressWarnings("unused")
7+
public class ErrorUnsatisfiableRefinement {
8+
void test() {
9+
@Refinement("_ > 0 && _ < 0")
10+
int x = 5;
11+
}
12+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Unsatisfiable Refinement Error
2+
package testSuite;
3+
4+
import liquidjava.specification.Refinement;
5+
6+
public class ErrorUnsatisfiableRefinementParameter {
7+
8+
void test(@Refinement("x == 0 && x == 1") int x) {}
9+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Unsatisfiable Refinement Error
2+
package testSuite;
3+
4+
import liquidjava.specification.Refinement;
5+
6+
public class ErrorUnsatisfiableRefinementReturn {
7+
@Refinement("_ % 2 == 3")
8+
int test() {
9+
return 1;
10+
}
11+
}

liquidjava-verifier/src/main/java/liquidjava/diagnostics/errors/UnsatisfiableRefinementError.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class UnsatisfiableRefinementError extends LJError {
1212
private final String refinement;
1313

1414
public UnsatisfiableRefinementError(SourcePosition position, String refinement) {
15-
super("Unsatisfiable Refinement", "This predicate can never be true", position, null);
15+
super("Unsatisfiable Refinement Error", "This predicate can never be true", position, null);
1616
this.refinement = refinement;
1717
}
1818

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ private void checkRefinementSatisfiability(Predicate predicate, CtElement elemen
118118
SourcePosition pos = Utils.getAnnotationPosition(element, refinementString);
119119
throw new UnsatisfiableRefinementError(pos, refinementString);
120120
}
121+
} catch (UnsatisfiableRefinementError e) {
122+
throw e;
121123
} catch (LJError e) {
122124
// ignore errors
123125
} finally {

0 commit comments

Comments
 (0)