// We clone the original context to avoid affecting the original context for the elseif.
// AssignmentVisitor modifies the provided context in place.
//
// There is a difference between `if (is_string($x['field']))` and `$x['field'] = remove_string_types($x['field'])` for the way the `elseif` should be analyzed.