It seems to me that the (relatively) new assign_array_level* functions in array.c don't set type_field as it should in the destination array, right? I've committed a fix in 8.1, second opinions are most welcome.
Looks good to me. I was a bit worried about the first assignment, but as both of the arrays are known to be of the same size, it is correct.
pike-devel@lists.lysator.liu.se