Skip to content

Commit cba676e

Browse files
committed
Refactor SMT Errors
1 parent 6a713e2 commit cba676e

File tree

11 files changed

+33
-76
lines changed

11 files changed

+33
-76
lines changed

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ public class SyntaxError extends LJError {
1111

1212
private String refinement;
1313

14-
1514
public SyntaxError(String message, String refinement) {
1615
this(message, null, refinement);
1716
}

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

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@
2222
import liquidjava.processor.context.*;
2323
import liquidjava.rj_language.Predicate;
2424
import liquidjava.rj_language.ast.Expression;
25-
import liquidjava.smt.GhostFunctionError;
26-
import liquidjava.smt.NotFoundSMTError;
2725
import liquidjava.smt.SMTEvaluator;
28-
import liquidjava.smt.TypeCheckError;
26+
import liquidjava.smt.errors.TypeCheckError;
2927
import liquidjava.utils.constants.Keys;
3028
import spoon.reflect.cu.SourcePosition;
3129
import spoon.reflect.declaration.CtElement;
@@ -267,10 +265,10 @@ public boolean smtChecks(Predicate found, Predicate expectedType, SourcePosition
267265
*
268266
* @throws Exception
269267
* @throws GhostFunctionError
270-
* @throws TypeCheckError
268+
* @throws SMTError
271269
*/
272270
private void smtChecking(Predicate cSMT, Predicate expectedType, SourcePosition p)
273-
throws TypeCheckError, GhostFunctionError, Exception {
271+
throws TypeCheckError, Exception {
274272
new SMTEvaluator().verifySubtype(cSMT, expectedType, context, p);
275273
}
276274

@@ -335,10 +333,7 @@ private LJError mapError(Exception e, Predicate premisesBeforeChange, Predicate
335333
TranslationTable map) {
336334
if (e instanceof TypeCheckError) {
337335
return new RefinementError(element, expectedType.getExpression(), premisesBeforeChange.simplify(), map);
338-
} else if (e instanceof GhostFunctionError) {
339-
return new GhostInvocationError("Invalid types or number of arguments in ghost invocation",
340-
element.getPosition(), expectedType.getExpression(), map);
341-
} else if (e instanceof NotFoundSMTError) {
336+
} else if (e instanceof liquidjava.smt.errors.NotFoundError) {
342337
return new NotFoundError(element, e.getMessage(), map);
343338
} else {
344339
return new CustomError(e.getMessage(), element);

liquidjava-verifier/src/main/java/liquidjava/rj_language/parsing/ParsingException.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
public class ParsingException extends Exception {
44

5-
/** */
6-
private static final long serialVersionUID = 1L;
7-
85
public ParsingException(String errorMessage) {
96
super(errorMessage);
107
}

liquidjava-verifier/src/main/java/liquidjava/smt/GhostFunctionError.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

liquidjava-verifier/src/main/java/liquidjava/smt/NotFoundSMTError.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

liquidjava-verifier/src/main/java/liquidjava/smt/SMTEvaluator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
import liquidjava.processor.context.Context;
99
import liquidjava.rj_language.Predicate;
1010
import liquidjava.rj_language.ast.Expression;
11+
import liquidjava.smt.errors.TypeCheckError;
1112
import spoon.reflect.cu.SourcePosition;
1213

1314
public class SMTEvaluator {
1415

1516
public void verifySubtype(Predicate subRef, Predicate supRef, Context c, SourcePosition pos)
16-
throws TypeCheckError, GhostFunctionError, Exception {
17+
throws TypeCheckError, Exception {
1718
// Creates a parser for our SMT-ready refinement language
1819
// Discharges the verification to z3
1920

liquidjava-verifier/src/main/java/liquidjava/smt/TranslatorToZ3.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.List;
1818
import java.util.Map;
1919
import liquidjava.processor.context.AliasWrapper;
20+
import liquidjava.smt.errors.NotFoundError;
2021
import liquidjava.utils.Utils;
2122

2223
import org.apache.commons.lang3.NotImplementedException;
@@ -75,7 +76,7 @@ public Expr<?> makeBooleanLiteral(boolean value) {
7576

7677
private Expr<?> getVariableTranslation(String name) throws Exception {
7778
if (!varTranslation.containsKey(name))
78-
throw new NotFoundSMTError("Variable '" + name.toString() + "' not found");
79+
throw new NotFoundError("Variable '" + name.toString() + "' not found");
7980
Expr<?> e = varTranslation.get(name);
8081
if (e == null)
8182
e = varTranslation.get(String.format("this#%s", name));
@@ -144,7 +145,7 @@ private FuncDecl<?> resolveFunctionDeclFallback(String name, Expr<?>[] params) t
144145
if (candidate != null) {
145146
return candidate;
146147
}
147-
throw new NotFoundSMTError("Function '" + name + "' not found");
148+
throw new NotFoundError("Function '" + name + "' not found");
148149
}
149150

150151
@SuppressWarnings({ "unchecked", "rawtypes" })
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package liquidjava.smt.errors;
2+
3+
public class NotFoundError extends SMTError {
4+
5+
public NotFoundError(String message) {
6+
super(message);
7+
}
8+
}

liquidjava-verifier/src/main/java/liquidjava/smt/TypeCheckError.java renamed to liquidjava-verifier/src/main/java/liquidjava/smt/errors/SMTError.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
package liquidjava.smt;
1+
package liquidjava.smt.errors;
22

33
import spoon.reflect.declaration.CtElement;
44

5-
public class TypeCheckError extends Exception {
6-
5+
public class SMTError extends Exception {
76
private CtElement location;
87

9-
public TypeCheckError(String message) {
8+
public SMTError(String message) {
109
super(message);
1110
}
1211

@@ -17,7 +16,4 @@ public CtElement getLocation() {
1716
public void setLocation(CtElement location) {
1817
this.location = location;
1918
}
20-
21-
/** */
22-
private static final long serialVersionUID = 1L;
2319
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package liquidjava.smt.errors;
2+
3+
public class TypeCheckError extends Exception {
4+
5+
public TypeCheckError(String message) {
6+
super(message);
7+
}
8+
}

0 commit comments

Comments
 (0)