Or float, for v6 progs.
It turns out the enumerator type and enum type wind up with different instances of the same type (due to the way type chaining works). This results in infinite recursion in assign_expr and check_types_compatible.
I don't remember what half these tests were for :/