[ https://issues.apache.org/jira/browse/THRIFT-2089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jake Farrell closed THRIFT-2089. -------------------------------- Resolution: Fixed > Compiler ignores duplicate typenames > ------------------------------------ > > Key: THRIFT-2089 > URL: https://issues.apache.org/jira/browse/THRIFT-2089 > Project: Thrift > Issue Type: Improvement > Components: Compiler (General) > Affects Versions: 1.0 > Environment: all > Reporter: Randy Abernethy > Assignee: Randy Abernethy > Priority: Minor > Fix For: 0.10.0 > > Attachments: 0001-added-compiler-duplicate-typename-checking.patch > > > The current IDL compiler will compile the following IDL with no warnings or > errors: > {code:title=test.thrift|borderStyle=solid} > struct A { 1: i16 a } > struct A { 1: i16 a } > {code} > and this (w/ thrift -r): > {code:title=test2.thrift|borderStyle=solid} > include "test.thrift" > struct A { 1: i16 a } > {code} > Both of these IDLs generate un-compilable output in most languages. > The attached patch adds typename collision checking to the compiler. It > generates errors when a typename is declared twice in the same file or when > the same typename is declared in two files causing collisions in all > namespace scopes. Explicit namespace declarations with collisions in some but > not all scopes are reported as warning because the user could compile for a > scope that would succeed. More details in the patch comments. > Built and tested on Windows with VS2012 and Unbuntu w/ gcc 4.7.2 > make check ran on Unbuntu clean (though I had to switch the config.h to > thrift/thrift-config.h in TFileTransportTest.cpp) -- This message was sent by Atlassian JIRA (v6.3.4#6332)