plugin.thrift defines t_const_value as a union. But in plugin_output.cc and plugin.cc, the converters clearly either (a) SET NEITHER of identifier_val & enum_val, or (b) SET BOTH. But these are two different fields in the union. So clearly, the type t_const_value isn't being treated as a union.
I think we need to fix Thrift's treatment of unions, but independently, the plugin should use Thrift's type system in a correct manner. This is easy-to-fix, but since the current plugin relies on a bug, the fix will be a breaking change.