[
https://issues.apache.org/jira/browse/THRIFT-1318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thunder Stumpges updated THRIFT-1318:
-------------------------------------
Attachment: NegativeEnumConstant.patch
Got my environment to build the compiler and in testing realized I updated
'render_const_value' but not 'print_const_value' and the latter was in use when
making the default constructor. I believe the fix is applicable to
'render_const_value' as well so I left it. The new patch should be correct and
works great for me!
> Incorrect syntax for struct with enum property and default value when value
> is negative
> ---------------------------------------------------------------------------------------
>
> Key: THRIFT-1318
> URL: https://issues.apache.org/jira/browse/THRIFT-1318
> Project: Thrift
> Issue Type: Bug
> Components: C# - Compiler
> Affects Versions: 0.7
> Environment: Windows 7 / .net 4.0
> Reporter: Thunder Stumpges
> Attachments: NegativeEnumConstant.patch
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> If I have a struct with a property of type enum with a default value
> specified, and the default value is negative, then the code generated is
> incorrect and has a syntax error.
> E.G. thrift file like this:
> {code}
> enum ReturnType {
> SuccessTypeA = 2
> SuccessUnknownType = 1,
> FailUnknown = -1,
> OtherFailure = -2
> }
> struct ReturnInformation {
> 1: required ReturnType RetType = ReturnType.FailUnknown;
> }
> {code}
> Generates a constructor like this:
> {code}
> public MatchInformation() {
> this._MatchType = (MatchTypes)-1;
> }
> {code}
> which fails with an exception "To cast a negative value, you must enclose the
> value in parentheses".
> I have updated the code to always put the enum constant value in parentheses
> (positive or negative), but need to get the compiler built and tested before
> I can submit a patch. Any chance someone could do this for me?
> :)
>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira