Extend NamedTuple special case to PartialStruct (#49641)
A little later in the `precise_container_type` function, we have
a special case for extracting the iteration type from a `NamedTuple`,
treating it the same as `Tuple`. However, as a result of this special
case we were accidentally discarding any constant information that
may have been in a `PartialStruct`. If we didn't have this special
case, `abstract_iteration` would have taken care of it properly.
To fix this, simply add the same special case to the `PartialStruct`
check at the top of the function.
Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>