GitHub user chetmurthy opened a pull request:

    https://github.com/apache/thrift/pull/1433

    fix plugin.thrift, plugin{,output}.cc to use t_const_value correctly

    [This is a minor bug.  Since it changes types in plugin.thrift, it's not 
possible to write a before-and-after bug. But conversion_test.cc currently 
tests this behaviour, so the change in conversion_test.cc is, effectively, the 
before-and-after test.]
    
    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.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/chetmurthy/thrift 
THRIFT-4399-plugin-t_const_value-union-fix

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/1433.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1433
    
----
commit f1f6deca88a090313eeb687c8078872f79eeae82
Author: Chet Murthy <[email protected]>
Date:   2017-12-02T00:48:10Z

    fix plugin.thrift, plugin{,output}.cc to use t_const_value correctly

----


---

Reply via email to