* @return the values the value can be assigned
*/
public List<Value> getReachingValues(Value value, Stmt st, Body body) {
List<Value> values = new ArrayList<Value>();
if (value instanceof Local) {
SimpleLocalDefs simpleLocalDefs = getSimpleLocalDefs(body);
// find the actual type of the locals
Local local = (Local) value;
List<Unit> defsOfAt = simpleLocalDefs.getDefsOfAt(local, st);
for (Unit unit : defsOfAt) {
if (unit instanceof JAssignStmt) {
JAssignStmt assign = (JAssignStmt) unit;
values.add(assign.getRightOp());
} else if (unit instanceof JIdentityStmt) {