/**
  * One var can be pointed by multiples accesses. This method leaves only one access per variable
  * in the list
  */
 private List<CtVariableAccess> cleanRepeatedAccesses(List<CtVariableAccess> allAccess) {
   // Have only one access per variable
   HashSet<String> varSignatures = new HashSet<>();
   List<CtVariableAccess> access = new ArrayList<>();
   for (CtVariableAccess a : allAccess) {
     if (isFieldOfPrimitiveArray(a)) continue;
     String signature = "";
     if (a instanceof CtFieldAccess && ((CtFieldAccess) a).getTarget() != null)
       signature = ((CtFieldAccess) a).getTarget().toString();
     signature += a.getVariable().getSimpleName() + a.getVariable().getClass().getSimpleName();
     if (!varSignatures.contains(signature)) {
       varSignatures.add(signature);
       access.add(a);
     }
   }
   varSignatures.clear();
   return access;
 }