You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2015/04/12 22:09:06 UTC

thrift git commit: THRIFT-3092 Generated Haskell types should derive Generic

Repository: thrift
Updated Branches:
  refs/heads/master 19e32dc0e -> b1783a572


THRIFT-3092 Generated Haskell types should derive Generic

This closes #437

commit bc922190b70e1264f356ab463dda18babf7910e3
Author: Abhinav Gupta <ma...@abhinavg.net>
Date: 2015-03-11T07:26:58Z

[haskell] Derive Generic in generated types


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/b1783a57
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/b1783a57
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/b1783a57

Branch: refs/heads/master
Commit: b1783a5722e7ab1669f5926c233ea40af0f3c924
Parents: 19e32dc
Author: Roger Meier <ro...@apache.org>
Authored: Sun Apr 12 22:08:20 2015 +0200
Committer: Roger Meier <ro...@apache.org>
Committed: Sun Apr 12 22:08:20 2015 +0200

----------------------------------------------------------------------
 compiler/cpp/src/generate/t_hs_generator.cc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/b1783a57/compiler/cpp/src/generate/t_hs_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/generate/t_hs_generator.cc b/compiler/cpp/src/generate/t_hs_generator.cc
index b217ce6..638cc30 100644
--- a/compiler/cpp/src/generate/t_hs_generator.cc
+++ b/compiler/cpp/src/generate/t_hs_generator.cc
@@ -205,6 +205,7 @@ void t_hs_generator::init_generator() {
 string t_hs_generator::hs_language_pragma() {
   return string(
       "{-# LANGUAGE DeriveDataTypeable #-}\n"
+      "{-# LANGUAGE DeriveGeneric #-}\n"
       "{-# LANGUAGE OverloadedStrings #-}\n"
       "{-# OPTIONS_GHC -fno-warn-missing-fields #-}\n"
       "{-# OPTIONS_GHC -fno-warn-missing-signatures #-}\n"
@@ -241,6 +242,7 @@ string t_hs_generator::hs_imports() {
       "import qualified Data.Maybe as M (catMaybes)\n"
       "import qualified Data.Text.Lazy.Encoding as E ( decodeUtf8, encodeUtf8 )\n"
       "import qualified Data.Text.Lazy as LT\n"
+      "import qualified GHC.Generics as G (Generic)\n"
       "import qualified Data.Typeable as TY ( Typeable )\n"
       "import qualified Data.HashMap.Strict as Map\n"
       "import qualified Data.HashSet as Set\n"
@@ -302,7 +304,7 @@ void t_hs_generator::generate_enum(t_enum* tenum) {
     f_types_ << name;
     first = false;
   }
-  indent(f_types_) << "deriving (P.Show,P.Eq, TY.Typeable, P.Ord, P.Bounded)" << endl;
+  indent(f_types_) << "deriving (P.Show, P.Eq, G.Generic, TY.Typeable, P.Ord, P.Bounded)" << endl;
   indent_down();
 
   string ename = capitalize(tenum->get_name());
@@ -555,7 +557,7 @@ void t_hs_generator::generate_hs_struct_definition(ofstream& out,
     indent_down();
   }
 
-  out << " deriving (P.Show,P.Eq,TY.Typeable)" << endl;
+  out << " deriving (P.Show,P.Eq,G.Generic,TY.Typeable)" << endl;
 
   if (is_exception)
     out << "instance X.Exception " << tname << endl;