You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (JIRA)" <ji...@apache.org> on 2014/04/02 23:55:21 UTC

[jira] [Created] (THRIFT-2444) pull request 88: thrift: clean up enum value assignment

Jens Geyer created THRIFT-2444:
----------------------------------

             Summary: pull request 88: thrift: clean up enum value assignment
                 Key: THRIFT-2444
                 URL: https://issues.apache.org/jira/browse/THRIFT-2444
             Project: Thrift
          Issue Type: Bug
          Components: Compiler (General)
            Reporter: Jens Geyer


GitHub user djwatson opened a pull request:

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

    thrift: clean up enum value assignment

        Summary:
        Clean up how enum values are handled if an integer value is not
        explicitly specified in the thrift file.
    
        For example, the following used to be a compile error, but
        works now:
    
          enum MyEnum {
            SOMEVALUE
          }
          struct MyStruct {
            1: MyEnum e = SOMEVALUE
          }
    
        This change also cleans up some of the error handling with out-of-range
        values.  Previously thrift simply issued a warning for enum values that
        didn't fit in an i32, but serialized them as i32 anyway.  Now
        out-of-range enum values result in a compile failure.
    
        Test Plan:
        Included a new unit test to verify the assignment of enum values.  I
        also verified that g++ makes the same enum value assignments when
        compiling these enums as C++ code.

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

    $ git pull https://github.com/djwatson/thrift enum_parser

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

    https://github.com/apache/thrift/pull/88.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 #88
    
----
commit 066cdfc0846dce8128263592efffa88084632a74
Author: Dave Watson <da...@fb.com>
Date:   2014-03-25T18:51:47Z

    thrift: clean up enum value assignment
    
        Summary:
        Clean up how enum values are handled if an integer value is not
        explicitly specified in the thrift file.
    
        For example, the following used to be a compile error, but
        works now:
    
          enum MyEnum {
            SOMEVALUE
          }
          struct MyStruct {
            1: MyEnum e = SOMEVALUE
          }
    
        This change also cleans up some of the error handling with out-of-range
        values.  Previously thrift simply issued a warning for enum values that
        didn't fit in an i32, but serialized them as i32 anyway.  Now
        out-of-range enum values result in a compile failure.
    
        Test Plan:
        Included a new unit test to verify the assignment of enum values.  I
        also verified that g++ makes the same enum value assignments when
        compiling these enums as C++ code.




--
This message was sent by Atlassian JIRA
(v6.2#6252)