@@ -55,15 +55,15 @@ public void reinitializeAllContext() {
5555 public void enterContext () {
5656 ctxVars .push (new ArrayList <>());
5757 // make each variable enter context
58- for (RefinedVariable vi : getAllVariables ())
58+ for (RefinedVariable vi : getAllCtxVars ())
5959 if (vi instanceof Variable )
6060 ((Variable ) vi ).enterContext ();
6161 }
6262
6363 public void exitContext () {
6464 ctxVars .pop ();
6565 // make each variable exit context
66- for (RefinedVariable vi : getAllVariables ())
66+ for (RefinedVariable vi : getAllCtxVars ())
6767 if (vi instanceof Variable )
6868 ((Variable ) vi ).exitContext ();
6969 }
@@ -86,6 +86,19 @@ public Map<String, CtTypeReference<?>> getContext() {
8686 return ret ;
8787 }
8888
89+ public Set <String > getAllVariableRefinements () {
90+ Set <RefinedVariable > vars = new HashSet <>();
91+ vars .addAll (getAllCtxVars ());
92+ vars .addAll (ctxInstanceVars );
93+ vars .addAll (ctxGlobalVars );
94+ Set <String > refinements = new HashSet <>();
95+ for (RefinedVariable var : vars ) {
96+ if (var .getRefinement () != null )
97+ refinements .add (var .getRefinement ().toString ());
98+ }
99+ return refinements ;
100+ }
101+
89102 // ---------------------- Global variables ----------------------
90103 public void addGlobalVariableToContext (String simpleName , String location , CtTypeReference <?> type , Predicate c ) {
91104 RefinedVariable vi = new Variable (simpleName , location , type , c );
@@ -172,22 +185,9 @@ public boolean hasVariable(String name) {
172185 return getVariableByName (name ) != null ;
173186 }
174187
175- /**
176- * Lists all variables inside the stack
177- *
178- * @return list of all variables
179- */
180- public List <RefinedVariable > getAllVariables () {
181- List <RefinedVariable > lvi = new ArrayList <>();
182- for (List <RefinedVariable > l : ctxVars ) {
183- lvi .addAll (l );
184- }
185- return lvi ;
186- }
187-
188188 public List <RefinedVariable > getAllVariablesWithSupertypes () {
189189 List <RefinedVariable > lvi = new ArrayList <>();
190- for (RefinedVariable rv : getAllVariables ()) {
190+ for (RefinedVariable rv : getAllCtxVars ()) {
191191 if (!rv .getSuperTypes ().isEmpty ())
192192 lvi .add (rv );
193193 }
@@ -229,7 +229,7 @@ public Variable getVariableFromInstance(VariableInstance vi) {
229229 return vi .getParent ().orElse (null );
230230 }
231231
232- public List <RefinedVariable > getCtxVars () {
232+ public List <RefinedVariable > getAllCtxVars () {
233233 List <RefinedVariable > lvi = new ArrayList <>();
234234 for (List <RefinedVariable > l : ctxVars ) {
235235 lvi .addAll (l );
@@ -243,37 +243,37 @@ public List<RefinedVariable> getCtxInstanceVars() {
243243
244244 // ---------------------- Variables - if information storing ----------------------
245245 public void variablesSetBeforeIf () {
246- for (RefinedVariable vi : getAllVariables ())
246+ for (RefinedVariable vi : getAllCtxVars ())
247247 if (vi instanceof Variable )
248248 ((Variable ) vi ).saveInstanceBeforeIf ();
249249 }
250250
251251 public void variablesSetThenIf () {
252- for (RefinedVariable vi : getAllVariables ())
252+ for (RefinedVariable vi : getAllCtxVars ())
253253 if (vi instanceof Variable )
254254 ((Variable ) vi ).saveInstanceThen ();
255255 }
256256
257257 public void variablesSetElseIf () {
258- for (RefinedVariable vi : getAllVariables ())
258+ for (RefinedVariable vi : getAllCtxVars ())
259259 if (vi instanceof Variable )
260260 ((Variable ) vi ).saveInstanceElse ();
261261 }
262262
263263 public void variablesNewIfCombination () {
264- for (RefinedVariable vi : getAllVariables ())
264+ for (RefinedVariable vi : getAllCtxVars ())
265265 if (vi instanceof Variable )
266266 ((Variable ) vi ).newIfCombination ();
267267 }
268268
269269 public void variablesFinishIfCombination () {
270- for (RefinedVariable vi : getAllVariables ())
270+ for (RefinedVariable vi : getAllCtxVars ())
271271 if (vi instanceof Variable )
272272 ((Variable ) vi ).finishIfCombination ();
273273 }
274274
275275 public void variablesCombineFromIf (Predicate cond ) {
276- for (RefinedVariable vi : getAllVariables ()) {
276+ for (RefinedVariable vi : getAllCtxVars ()) {
277277 if (vi instanceof Variable ) {
278278 Optional <VariableInstance > ovi = ((Variable ) vi ).getIfInstanceCombination (getCounter (), cond );
279279 if (ovi .isPresent ()) {
0 commit comments