[ https://issues.apache.org/jira/browse/THRIFT-1028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12987773#action_12987773 ]
Christian Lavoie commented on THRIFT-1028: ------------------------------------------ Oh, I see what you mean. Yeah, right now the bindings decapitalize a few more things than they could -- part of the problem is that Haskell requires certain things to capitalized and others not too. I think the current code generator tries (too) hard to stay consistent across cases where parts of the code want a given identifier capitalized and others parts wants that same identifier non-capitalized (Types vs function and field names, for example). I wonder what's the right rule of thumb here -- "keep what the .thrift file uses unless Haskell's grammar requires otherwise"? > field names of structs used with wrong casing in the generated haskell code > --------------------------------------------------------------------------- > > Key: THRIFT-1028 > URL: https://issues.apache.org/jira/browse/THRIFT-1028 > Project: Thrift > Issue Type: Bug > Components: Haskell - Compiler > Affects Versions: 0.5 > Environment: ghc 6.12.1, Thrift version 0.5.0, ubuntu 10.10 > Reporter: Jesper Reenberg > Assignee: Christian Lavoie > Priority: Minor > > Invalid haskell code is generated using the following thrift code: > -------------------------------------------------------- > struct Test { > 1:string Foo, > 3:i32 BarBaz, > 4:i32 HestTest > } > service Test { > bool makeTest(1:Test tst, 2:double i) > } > -------------------------------------------------------- > The wrong casing is generated in the record setter parts of the generated > data in read_Test_fields and generation of the initial "record" in read_Test. > The wrong casing is the first letter from the thrift struct specification > always being lowercase when used in the above two generated functions. > The generated data type is > data Test = Test > { > f_Test_Foo :: Maybe String > , f_Test_BarBaz :: Maybe Int32 > , f_Test_HestTest :: Maybe Int32 > } > deriving (Show,Eq,Ord,Typeable) > Where it is used with the field names f_Test_foo, f_Test_barBaz and > f_Test_hestTest as seen below > read_Test iprot = do > _ <- readStructBegin iprot > record <- read_Test_fields iprot > > (Test{f_Test_foo=Nothing,f_Test_barBaz=Nothing,f_Test_hestTest=Nothing}) > readStructEnd iprot > return record > I have downloaded and build the 0.5.0 from http://thrift.apache.org/ and i > don't know if it affect older versions as well. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.