Skip to content

Commit 3c76824

Browse files
state changes in the constructor do not add old mentions since when the constructor is called there isnt a old version of the object
1 parent fa65982 commit 3c76824

File tree

4 files changed

+20
-26
lines changed

4 files changed

+20
-26
lines changed

liquidjava-verifier/src/main/java/liquidjava/api/CommandLineLauncher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static void main(String[] args) {
1818
// "../liquidjava/liquidjava-umbrella/liquidjava-example/src/main/java/liquidjava/test/project";
1919
String file = args.length == 0 ? allPath : args[0];
2020
ErrorEmitter ee = launch(file);
21-
System.out.println(ee.foundError()? (ee.getFullMessage()):("Correct! Passed Verification."));
21+
System.out.println(ee.foundError() ? (ee.getFullMessage()) : ("Correct! Passed Verification."));
2222

2323
}
2424

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ private VCImplication joinPredicates(Predicate expectedType, List<RefinedVariabl
135135
if (firstSi != null && lastSi != null) {
136136
cSMT = firstSi.clone();
137137
lastSi.setNext(new VCImplication(expectedType));
138-
printVCs(firstSi.toString(), cSMT.toConjunctions().toString(), expectedType);
138+
// printVCs(firstSi.toString(), cSMT.toConjunctions().toString(), expectedType); //DEBUG: UNCOMMENT
139139
}
140140

141141
return cSMT; // firstSi != null ? firstSi : new VCImplication(new Predicate());

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

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ public static void handleConstructorState(CtConstructor<?> c, RefinedFunction f,
4848
}
4949
}
5050

51-
5251
/**
5352
* Creates the list of states and adds them to the function
5453
*
@@ -67,7 +66,7 @@ private static void setConstructorStates(RefinedFunction f, List<CtAnnotation<?
6766
Map<String, CtExpression> m = an.getAllValues();
6867
String to = TypeCheckingUtils.getStringFromAnnotation(m.get("to"));
6968
ObjectState state = new ObjectState();
70-
if (to != null)
69+
if (to != null)
7170
state.setTo(new Predicate(to, element, tc.getErrorEmitter()));
7271
l.add(state);
7372
}
@@ -80,7 +79,7 @@ public static void setDefaultState(RefinedFunction f, TypeChecker tc) {
8079

8180
Predicate[] s = { Predicate.createVar(tc.THIS) };
8281
Predicate c = new Predicate();
83-
List<GhostFunction> sets = getDifferentSets(tc, klass);//??
82+
List<GhostFunction> sets = getDifferentSets(tc, klass);// ??
8483
for (GhostFunction sg : sets) {
8584
if (sg.getReturnType().toString().equals("int")) {
8685
Predicate p = Predicate.createEquals(Predicate.createInvocation(sg.getName(), s),
@@ -179,10 +178,6 @@ private static ObjectState getStates(CtAnnotation<? extends Annotation> ctAnnota
179178
return state;
180179
}
181180

182-
183-
184-
185-
186181
private static Predicate createStatePredicate(String value, /* RefinedFunction f */
187182
String targetClass, TypeChecker tc, CtElement e, boolean isTo) throws ParsingException {
188183
Predicate p = new Predicate(value, e, tc.getErrorEmitter());
@@ -448,7 +443,7 @@ private static Predicate changeState(TypeChecker tc, VariableInstance vi,
448443
for (String s : map.keySet()) {
449444
transitionedState = transitionedState.substituteVariable(s, map.get(s));
450445
}
451-
transitionedState = checkOldMentions(transitionedState, instanceName, newInstanceName, tc);
446+
transitionedState = checkOldMentions(transitionedState, instanceName, newInstanceName, tc);
452447
// update of stata of new instance of this#n#(whatever it was + 1)
453448
addInstanceWithState(tc, name, newInstanceName, vi, transitionedState, invocation);
454449
return transitionedState;
@@ -466,19 +461,20 @@ private static Predicate changeState(TypeChecker tc, VariableInstance vi,
466461
return new Predicate();
467462
}
468463

469-
470464
/**
471465
* Method prepared to change all old vars in a predicate, however it has not been needed yet
466+
*
472467
* @param pred
473468
* @param tc
469+
*
474470
* @return
475471
*/
476472
private static Predicate changeVarsFields(Predicate pred, TypeChecker tc) {
477473
Predicate noOld = pred;
478474
List<String> listVarsInOld = pred.getOldVariableNames();
479-
for (String varInOld : listVarsInOld){
475+
for (String varInOld : listVarsInOld) {
480476
Optional<VariableInstance> ovi = tc.getContext().getLastVariableInstance(varInOld);
481-
if(ovi.isPresent())
477+
if (ovi.isPresent())
482478
noOld = noOld.changeOldMentions(varInOld, ovi.get().getName(), tc.getErrorEmitter());
483479
}
484480
return noOld;

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

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -137,31 +137,29 @@ public Predicate changeOldMentions(String previousName, String newName, ErrorEmi
137137
return new Predicate(e);
138138
}
139139

140-
141-
public List<String> getOldVariableNames(){
140+
public List<String> getOldVariableNames() {
142141
List<String> ls = new ArrayList<>();
143142
expressionGetOldVariableNames(this.exp, ls);
144143
return ls;
145144
}
146145

147-
private void expressionGetOldVariableNames(Expression exp, List<String> ls){
148-
if(exp instanceof FunctionInvocation){
146+
private void expressionGetOldVariableNames(Expression exp, List<String> ls) {
147+
if (exp instanceof FunctionInvocation) {
149148
FunctionInvocation fi = (FunctionInvocation) exp;
150-
if (fi.getName().equals(Utils.OLD)){
149+
if (fi.getName().equals(Utils.OLD)) {
151150
List<Expression> le = fi.getArgs();
152-
for(Expression e: le){
153-
if (e instanceof Var)
154-
ls.add(((Var) e).getName());
151+
for (Expression e : le) {
152+
if (e instanceof Var)
153+
ls.add(((Var) e).getName());
155154
}
156-
}
157-
}
158-
if(exp.hasChildren()){
155+
}
156+
}
157+
if (exp.hasChildren()) {
159158
for (var ch : exp.getChildren())
160159
expressionGetOldVariableNames(ch, ls);
161-
160+
162161
}
163162
}
164-
165163

166164
public Predicate changeStatesToRefinements(List<GhostState> ghostState, String[] toChange, ErrorEmitter ee) {
167165
Map<String, Expression> nameRefinementMap = new HashMap<>();

0 commit comments

Comments
 (0)