This PR makes types like bit_set[$T] have their upper and lower bits overwritten by upper/lower from the source type when checking if polymorphic type is assignable.
This fixes an issue where an i8 was always generated for bit_sets with generic elements, because it couldn't figure out upper/lower when check_bit_set_type was originally run, so the poly type has both upper and lower0.
This PR makes types like
bit_set[$T]
have their upper and lower bits overwritten by upper/lower from the source type when checking if polymorphic type is assignable.This fixes an issue where an
i8
was always generated for bit_sets with generic elements, because it couldn't figure out upper/lower whencheck_bit_set_type
was originally run, so the poly type has bothupper
andlower
0
.Fixes #2860