[ 
https://issues.apache.org/jira/browse/THRIFT-1603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13572731#comment-13572731
 ] 

Jens Geyer edited comment on THRIFT-1603 at 2/6/13 7:46 PM:
------------------------------------------------------------

{code}
if (bounds.first != bounds.second) {
  return false;
}

// some more code

members_in_id_order_.insert(bounds.second, elem);
{code}

{quote}
won't [this comparison] produce an incomprehensible error message?
{quote}

This test checks for duplicate IDs, not names.

Additionally, I'm questioning the insert() even more. Can we, according to 
http://www.cplusplus.com/reference/algorithm/equal_range, really be sure that 
{code}bounds.second{code} always has the right value? Shouldn't it be better

{code}
members_in_id_order_.insert( elem.get_key(), elem);
{code}

instead?

                
      was (Author: jensg):
    {code}
if (bounds.first != bounds.second) {
  return false;
}

// some more code

members_in_id_order_.insert(bounds.second, elem);
{code}

{quote}
won't [this comparison] produce an incomprehensible error message?
{quote}

Agree. The test will detect the +third+ field inserted with the same key, but 
not the second. -I guess the test can be removed.- No, it can't. This test 
checks for duplicate IDs, not names.

Additionally, I'm questioning the insert() even more. Can we, according to 
http://www.cplusplus.com/reference/algorithm/equal_range, really be sure that 
{code}bounds.second{code} always has the right value? Shouldn't it be better

{code}
members_in_id_order_.insert( elem.get_key(), elem);
{code}

instead?

                  
> Thrift IDL allows for multiple exceptions, args or struct member names to be 
> the same
> -------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1603
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1603
>             Project: Thrift
>          Issue Type: Bug
>         Environment: RedHat 5.5, C++, thrift-0.8.0
>            Reporter: Michael Popovich
>            Assignee: Kamil Sałaś
>            Priority: Trivial
>             Fix For: 1.0
>
>         Attachments: 
> 0001-Thrift-1603-Provide-unique-names-for-t_struct-elemen.patch
>
>
> I noticed that the Thrift IDL compiler allows for multiple exceptions 
> instances to utilize the same name... This is a problem because when 
> compiling to C++, the generated C++ code will not compile properly:
> service whatever
> {
> void insert(1: string s) throws (1: NS nst, WX wxx, NSTx nst),
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to