Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-1028

field names of structs used with wrong casing in the generated haskell code

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Cannot Reproduce
    • Affects Version/s: 0.5
    • Fix Version/s: 0.9.2
    • Component/s: Haskell - Compiler
    • Labels:
      None
    • Environment:

      ghc 6.12.1, Thrift version 0.5.0, ubuntu 10.10

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              clavoie Christian Lavoie
              Reporter:
              reenberg Jesper Reenberg
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: