1313import liquidjava.rj_language.BuiltinFunctionPredicate;
1414import liquidjava.rj_language.Predicate;
1515import liquidjava.rj_language.parsing.ParsingException;
16- import liquidjava.utils.Utils;
16+ import liquidjava.utils.constants.Formats;
17+ import liquidjava.utils.constants.Keys;
18+ import liquidjava.utils.constants.Types;
1719
1820import org.apache.commons.lang3.NotImplementedException;
1921import spoon.reflect.code.CtArrayRead;
@@ -172,22 +174,22 @@ public <T> void visitCtNewArray(CtNewArray<T> newArray) {
172174 } catch (ParsingException e) {
173175 return; // error already in ErrorEmitter
174176 }
175- String name = String.format(freshFormat , context.getCounter());
176- if (c.getVariableNames().contains(WILD_VAR )) {
177- c = c.substituteVariable(WILD_VAR , name);
177+ String name = String.format(Formats.RET , context.getCounter());
178+ if (c.getVariableNames().contains(Keys.WILDCARD )) {
179+ c = c.substituteVariable(Keys.WILDCARD , name);
178180 } else {
179181 c = Predicate.createEquals(Predicate.createVar(name), c);
180182 }
181183 context.addVarToContext(name, factory.Type().INTEGER_PRIMITIVE, c, exp);
182184 Predicate ep;
183185 try {
184186 ep = Predicate.createEquals(
185- BuiltinFunctionPredicate.builtin_length(WILD_VAR , newArray, getErrorEmitter()),
187+ BuiltinFunctionPredicate.builtin_length(Keys.WILDCARD , newArray, getErrorEmitter()),
186188 Predicate.createVar(name));
187189 } catch (ParsingException e) {
188190 return; // error already in ErrorEmitter
189191 }
190- newArray.putMetadata(REFINE_KEY , ep);
192+ newArray.putMetadata(Keys.REFINEMENT , ep);
191193 }
192194 }
193195
@@ -201,9 +203,9 @@ public <T> void visitCtThisAccess(CtThisAccess<T> thisAccess) {
201203 CtClass<?> c = thisAccess.getParent(CtClass.class);
202204 String s = c.getSimpleName();
203205 if (thisAccess.getParent() instanceof CtReturn) {
204- String thisName = String.format(thisFormat , s);
205- thisAccess.putMetadata(REFINE_KEY ,
206- Predicate.createEquals(Predicate.createVar(WILD_VAR ), Predicate.createVar(thisName)));
206+ String thisName = String.format(Formats.THIS , s);
207+ thisAccess.putMetadata(Keys.REFINEMENT ,
208+ Predicate.createEquals(Predicate.createVar(Keys.WILDCARD ), Predicate.createVar(thisName)));
207209 }
208210 }
209211
@@ -227,7 +229,7 @@ public <T, A extends T> void visitCtAssignment(CtAssignment<T, A> assignment) {
227229 CtFieldWrite<?> fw = ((CtFieldWrite<?>) ex);
228230 CtFieldReference<?> cr = fw.getVariable();
229231 CtField<?> f = fw.getVariable().getDeclaration();
230- String updatedVarName = String.format(thisFormat , cr.getSimpleName());
232+ String updatedVarName = String.format(Formats.THIS , cr.getSimpleName());
231233 checkAssignment(updatedVarName, cr.getType(), ex, assignment.getAssignment(), assignment, f);
232234
233235 // corresponding ghost function update
@@ -249,9 +251,9 @@ public <T> void visitCtArrayRead(CtArrayRead<T> arrayRead) {
249251 }
250252
251253 super.visitCtArrayRead(arrayRead);
252- String name = String.format(instanceFormat , "arrayAccess", context.getCounter());
254+ String name = String.format(Formats.INSTANCE , "arrayAccess", context.getCounter());
253255 context.addVarToContext(name, arrayRead.getType(), new Predicate(), arrayRead);
254- arrayRead.putMetadata(REFINE_KEY , Predicate.createVar(name));
256+ arrayRead.putMetadata(Keys.REFINEMENT , Predicate.createVar(name));
255257 // TODO predicate for now is always TRUE
256258 }
257259
@@ -261,15 +263,15 @@ public <T> void visitCtLiteral(CtLiteral<T> lit) {
261263 return;
262264 }
263265
264- List<String> types = Arrays.asList(implementedTypes );
266+ List<String> types = Arrays.asList(Types.IMPLEMENTED );
265267 String type = lit.getType().getQualifiedName();
266268 if (types.contains(type)) {
267- lit.putMetadata(REFINE_KEY , Predicate.createEquals(Predicate.createVar(WILD_VAR ),
269+ lit.putMetadata(Keys.REFINEMENT , Predicate.createEquals(Predicate.createVar(Keys.WILDCARD ),
268270 Predicate.createLit(lit.getValue().toString(), type)));
269271
270272 } else if (lit.getType().getQualifiedName().equals("java.lang.String")) {
271273 // Only taking care of strings inside refinements
272- } else if (type.equals(Utils.NULL_TYPE )) {
274+ } else if (type.equals(Types.NULL )) {
273275 // Skip null literals
274276 } else {
275277 throw new NotImplementedException(
@@ -293,10 +295,10 @@ public <T> void visitCtField(CtField<T> f) {
293295 // context.addVarToContext(f.getSimpleName(), f.getType(),
294296 // c.map( i -> i.substituteVariable(WILD_VAR, f.getSimpleName()).orElse(new
295297 // Predicate()) );
296- String nname = String.format(thisFormat , f.getSimpleName());
298+ String nname = String.format(Formats.THIS , f.getSimpleName());
297299 Predicate ret = new Predicate();
298300 if (c.isPresent()) {
299- ret = c.get().substituteVariable(WILD_VAR , nname).substituteVariable(f.getSimpleName(), nname);
301+ ret = c.get().substituteVariable(Keys.WILDCARD , nname).substituteVariable(f.getSimpleName(), nname);
300302 }
301303 RefinedVariable v = context.addVarToContext(nname, f.getType(), ret, f);
302304 if (v instanceof Variable) {
@@ -315,27 +317,27 @@ public <T> void visitCtFieldRead(CtFieldRead<T> fieldRead) {
315317 RefinedVariable rv = context.getVariableByName(fieldName);
316318 if (rv instanceof Variable && ((Variable) rv).getLocation().isPresent()
317319 && ((Variable) rv).getLocation().get().equals(fieldRead.getTarget().toString())) {
318- fieldRead.putMetadata(REFINE_KEY , context.getVariableRefinements(fieldName));
320+ fieldRead.putMetadata(Keys.REFINEMENT , context.getVariableRefinements(fieldName));
319321 } else {
320- fieldRead.putMetadata(REFINE_KEY ,
321- Predicate.createEquals(Predicate.createVar(WILD_VAR ), Predicate.createVar(fieldName)));
322+ fieldRead.putMetadata(Keys.REFINEMENT ,
323+ Predicate.createEquals(Predicate.createVar(Keys.WILDCARD ), Predicate.createVar(fieldName)));
322324 }
323325
324- } else if (context.hasVariable(String.format(thisFormat , fieldName))) {
325- String thisName = String.format(thisFormat , fieldName);
326- fieldRead.putMetadata(REFINE_KEY ,
327- Predicate.createEquals(Predicate.createVar(WILD_VAR ), Predicate.createVar(thisName)));
326+ } else if (context.hasVariable(String.format(Formats.THIS , fieldName))) {
327+ String thisName = String.format(Formats.THIS , fieldName);
328+ fieldRead.putMetadata(Keys.REFINEMENT ,
329+ Predicate.createEquals(Predicate.createVar(Keys.WILDCARD ), Predicate.createVar(thisName)));
328330
329331 } else if (fieldRead.getVariable().getSimpleName().equals("length")) {
330332 String targetName = fieldRead.getTarget().toString();
331333 try {
332- fieldRead.putMetadata(REFINE_KEY , Predicate.createEquals(Predicate.createVar(WILD_VAR ),
334+ fieldRead.putMetadata(Keys.REFINEMENT , Predicate.createEquals(Predicate.createVar(Keys.WILDCARD ),
333335 BuiltinFunctionPredicate.builtin_length(targetName, fieldRead, getErrorEmitter())));
334336 } catch (ParsingException e) {
335337 return; // error already in ErrorEmitter
336338 }
337339 } else {
338- fieldRead.putMetadata(REFINE_KEY , new Predicate());
340+ fieldRead.putMetadata(Keys.REFINEMENT , new Predicate());
339341 // TODO DO WE WANT THIS OR TO SHOW ERROR MESSAGE
340342 }
341343
@@ -417,8 +419,8 @@ public void visitCtIf(CtIf ifElement) {
417419 } catch (ParsingException e) {
418420 return; // error already in ErrorEmitter
419421 }
420- String freshVarName = String.format(freshFormat , context.getCounter());
421- expRefs = expRefs.substituteVariable(WILD_VAR , freshVarName);
422+ String freshVarName = String.format(Formats.FRESH , context.getCounter());
423+ expRefs = expRefs.substituteVariable(Keys.WILDCARD , freshVarName);
422424 Predicate lastExpRefs = substituteAllVariablesForLastInstance(expRefs);
423425 expRefs = Predicate.createConjunction(expRefs, lastExpRefs);
424426
@@ -470,11 +472,11 @@ public <T> void visitCtArrayWrite(CtArrayWrite<T> arrayWrite) {
470472 BuiltinFunctionPredicate fp;
471473 try {
472474 fp = BuiltinFunctionPredicate.builtin_addToIndex(arrayWrite.getTarget().toString(), index.toString(),
473- WILD_VAR , arrayWrite, getErrorEmitter());
475+ Keys.WILDCARD , arrayWrite, getErrorEmitter());
474476 } catch (ParsingException e) {
475477 return; // error already in ErrorEmitter
476478 }
477- arrayWrite.putMetadata(REFINE_KEY , fp);
479+ arrayWrite.putMetadata(Keys.REFINEMENT , fp);
478480 }
479481
480482 @Override
@@ -487,7 +489,7 @@ public <T> void visitCtConditional(CtConditional<T> conditional) {
487489 Predicate cond = getRefinement(conditional.getCondition());
488490 Predicate c = Predicate.createITE(cond, getRefinement(conditional.getThenExpression()),
489491 getRefinement(conditional.getElseExpression()));
490- conditional.putMetadata(REFINE_KEY , c);
492+ conditional.putMetadata(Keys.REFINEMENT , c);
491493 }
492494
493495 @Override
@@ -582,12 +584,12 @@ private Predicate substituteAllVariablesForLastInstance(Predicate c) {
582584 * Cannot be null
583585 */
584586 private <T> void getPutVariableMetadada(CtElement elem, String name) {
585- Predicate cref = Predicate.createEquals(Predicate.createVar(WILD_VAR ), Predicate.createVar(name));
587+ Predicate cref = Predicate.createEquals(Predicate.createVar(Keys.WILDCARD ), Predicate.createVar(name));
586588 Optional<VariableInstance> ovi = context.getLastVariableInstance(name);
587589 if (ovi.isPresent()) {
588- cref = Predicate.createEquals(Predicate.createVar(WILD_VAR ), Predicate.createVar(ovi.get().getName()));
590+ cref = Predicate.createEquals(Predicate.createVar(Keys.WILDCARD ), Predicate.createVar(ovi.get().getName()));
589591 }
590592
591- elem.putMetadata(REFINE_KEY , cref);
593+ elem.putMetadata(Keys.REFINEMENT , cref);
592594 }
593595}
0 commit comments