This copy still does not make sense to me. I think it should rather be something like an EmptyLike call here, there is just no reason for it. Then do the AssignArray call unconditionally for the integer special case.