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
            Reporter: Jesper Reenberg
            Priority: Critical


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.

Reply via email to