combined is_vector calls to contains_vector and !is_constant_struct to contains_nonconstant_struct