Skip to content

Commit 5472ca7

Browse files
committed
Requested Changes
1 parent 07ca3f0 commit 5472ca7

File tree

5 files changed

+6
-52
lines changed

5 files changed

+6
-52
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ public class StateConflictError extends LJError {
1414
private String className;
1515

1616
public StateConflictError(CtElement element, Predicate predicate, String className) {
17-
super("State Conflict Error", "Found multiple disjoint states in state transition", element);
17+
super("State Conflict Error",
18+
"Found multiple disjoint states in state transition — State transition can only go to one state of each state set",
19+
element);
1820
this.predicate = predicate;
1921
this.className = className;
2022
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ public <T> void visitCtNewArray(CtNewArray<T> newArray) {
174174
} catch (ParsingException e) {
175175
return; // error already in ErrorEmitter
176176
}
177-
String name = String.format(Formats.RET, context.getCounter());
177+
String name = String.format(Formats.FRESH, context.getCounter());
178178
if (c.getVariableNames().contains(Keys.WILDCARD)) {
179179
c = c.substituteVariable(Keys.WILDCARD, name);
180180
} else {

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

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -304,14 +304,6 @@ void removePathVariableThatIncludes(String otherVar) {
304304
.collect(Collectors.toList()).forEach(pathVariables::remove);
305305
}
306306

307-
// private void printVCs(String string, String stringSMT, Predicate expectedType) {
308-
// System.out.println("\n----------------------------VC--------------------------------\n");
309-
// System.out.println(string);
310-
// System.out.println("\nSMT subtyping:" + stringSMT + " <: " + expectedType.toString());
311-
// System.out.println("--------------------------------------------------------------");
312-
// }
313-
314-
// Print
315307
// Errors---------------------------------------------------------------------------------------------------
316308

317309
private HashMap<String, PlacementInCode> createMap(CtElement element, Predicate expectedType) {
@@ -369,13 +361,6 @@ private void printError(Exception e, Predicate premisesBeforeChange, Predicate e
369361
}
370362
}
371363

372-
// private void printError(Predicate premises, Predicate expectedType, CtElement element,
373-
// HashMap<String, PlacementInCode> map, String s) {
374-
// Predicate etMessageReady = expectedType; // substituteByMap(expectedType, map);
375-
// Predicate cSMTMessageReady = premises; // substituteByMap(premises, map);
376-
// ErrorHandler.printError(element, s, etMessageReady, cSMTMessageReady, map, errorEmitter);
377-
// }
378-
379364
public void printStateMismatchError(CtElement element, String method, Predicate c, String states) {
380365
List<RefinedVariable> lrv = new ArrayList<>(), mainVars = new ArrayList<>();
381366
gatherVariables(c, lrv, mainVars);

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

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -498,25 +498,6 @@ private static Predicate changeState(TypeChecker tc, VariableInstance vi,
498498
return new Predicate();
499499
}
500500

501-
/**
502-
* Method prepared to change all old vars in a predicate, however it has not been needed yet
503-
*
504-
* @param pred
505-
* @param tc
506-
*
507-
* @return
508-
*/
509-
// private static Predicate changeVarsFields(Predicate pred, TypeChecker tc) {
510-
// Predicate noOld = pred;
511-
// List<String> listVarsInOld = pred.getOldVariableNames();
512-
// for (String varInOld : listVarsInOld) {
513-
// Optional<VariableInstance> ovi = tc.getContext().getLastVariableInstance(varInOld);
514-
// if (ovi.isPresent())
515-
// noOld = noOld.changeOldMentions(varInOld, ovi.get().getName(), tc.getErrorEmitter());
516-
// }
517-
// return noOld;
518-
// }
519-
520501
private static Predicate checkOldMentions(Predicate transitionedState, String instanceName, String newInstanceName,
521502
TypeChecker tc) {
522503
return transitionedState.changeOldMentions(instanceName, newInstanceName, tc.getErrorEmitter());
@@ -534,12 +515,8 @@ private static Predicate checkOldMentions(Predicate transitionedState, String in
534515
*/
535516
private static Predicate sameState(TypeChecker tc, VariableInstance variableInstance, String name,
536517
CtElement invocation) {
537-
// if(variableInstance.getState() != null) {
538518
if (variableInstance.getRefinement() != null) {
539519
String newInstanceName = String.format(Formats.INSTANCE, name, tc.getContext().getCounter());
540-
// Predicate c =
541-
// variableInstance.getState().substituteVariable(variableInstance.getName(),
542-
// newInstanceName);
543520
Predicate c = variableInstance.getRefinement().substituteVariable(Keys.WILDCARD, newInstanceName)
544521
.substituteVariable(variableInstance.getName(), newInstanceName);
545522

@@ -636,15 +613,5 @@ private static List<CtAnnotation<? extends Annotation>> getStateAnnotation(CtEle
636613
return element.getAnnotations().stream().filter(ann -> ann.getActualAnnotation().annotationType()
637614
.getCanonicalName().contentEquals("liquidjava.specification.StateRefinement"))
638615
.collect(Collectors.toList());
639-
640-
// List<CtAnnotation<? extends Annotation>> l = new ArrayList<CtAnnotation<?
641-
// extends Annotation>>();
642-
// for (CtAnnotation<? extends Annotation> ann : element.getAnnotations()) {
643-
// String an = ann.getActualAnnotation().annotationType().getCanonicalName();
644-
// if (an.contentEquals("liquidjava.specification.StateRefinement")) {
645-
// l.add(ann);
646-
// }
647-
// }
648-
// return l;
649616
}
650617
}

liquidjava-verifier/src/main/java/liquidjava/rj_language/Predicate.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,8 @@ public static Predicate createLit(String value, String type) {
242242
Expression exp = switch (type) {
243243
case Types.BOOLEAN -> new LiteralBoolean(value);
244244
case Types.INT, Types.SHORT -> new LiteralInt(value);
245-
case Types.DOUBLE, Types.LONG -> new LiteralReal(value);
246-
default -> new LiteralReal(value);
245+
case Types.DOUBLE, Types.LONG, Types.FLOAT -> new LiteralReal(value);
246+
default -> throw new IllegalArgumentException("Unsupported literal type: " + type);
247247
};
248248
return new Predicate(exp);
249249
}

0 commit comments

Comments
 (0)