code: private static VariableExpression getTarget(VariableExpression ve) {
          if (ve.getAccessedVariable() == null || ve.getAccessedVariable() == ve || (!(ve.getAccessedVariable() instanceof VariableExpression)))
              return ve;
          return getTarget((VariableExpression) ve.getAccessedVariable());
      }
docs: The inferred type, in case of a variable expression, can be set on the accessed variable, so we take it instead
  of the facade one.
  
  @param ve the variable expression for which to return the target expression
  @return the target variable expression