hprotoc 2.2.0 → 2.3.0
raw patch · 2 files changed
+22/−13 lines, 2 filesdep ~protocol-buffersdep ~protocol-buffers-descriptor
Dependency ranges changed: protocol-buffers, protocol-buffers-descriptor
Files
Text/ProtocolBuffers/ProtoCompile/Gen.hs view
@@ -341,7 +341,7 @@ -------------------------------------------- oneofModule :: Result -> OneofInfo -> Module oneofModule result oi- = Module src (ModuleName (fqMod protoName)) (modulePragmas False) Nothing+ = Module src (ModuleName (fqMod protoName)) (modulePragmas $ oneofMakeLenses oi) Nothing Nothing imports (oneofDecls oi) where protoName = oneofName oi typs = mapMaybe typeName . F.toList . fmap snd . oneofFields $ oi@@ -350,10 +350,15 @@ oneofDecls :: OneofInfo -> [Decl]-oneofDecls oi = (oneofX oi : oneofFuncs oi) ++- [ instanceDefaultOneof oi- , instanceMergeableOneof oi- ]+oneofDecls oi = (oneofX oi : oneofFuncs oi) ++ lenses ++ instances+ where+ mkPrisms = Var (Qual (ModuleName "Control.Lens.TH") (Ident "makePrisms"))+ lenses | oneofMakeLenses oi = [SpliceDecl src (mkFun $$ TypQuote (unqualName (oneofName oi))) |+ mkFun <- [mkLenses, mkPrisms]]+ | otherwise = []+ instances = [ instanceDefaultOneof oi+ , instanceMergeableOneof oi+ ] oneofX :: OneofInfo -> Decl oneofX oi = DataDecl src DataType [] (baseIdent (oneofName oi)) []@@ -685,7 +690,6 @@ extendees' ++ mapMaybe typeName (myKeys' ++ (F.toList (fields di))) , concat . mapMaybe (importO result m Normal) $ F.toList (descOneofs di) , mapMaybe (importPFN result m) (map fieldName (myKeys ++ F.toList (knownKeys di))) ]- mkLenses = Var (Qual (ModuleName "Control.Lens.TH") (Ident "makeLenses")) lenses | makeLenses di = [SpliceDecl src (mkLenses $$ TypQuote (unqualName protoName))] | otherwise = [] declKeys | sepKey = []@@ -693,17 +697,22 @@ in Module src m (modulePragmas $ makeLenses di) Nothing (Just (EThingAll un : exportLenses di ++ exportKeys)) imports (descriptorX di : lenses ++ declKeys ++ instancesDescriptor di) +mkLenses :: Exp+mkLenses = Var (Qual (ModuleName "Control.Lens.TH") (Ident "makeLenses"))+ exportLenses :: DescriptorInfo -> [ExportSpec] exportLenses di = if makeLenses di then #if MIN_VERSION_haskell_src_exts(1, 17, 0)- map (EVar . unqualFName . stripPrefix . fieldName) (F.toList (fields di))+ map (EVar . unqualFName . stripPrefix) (lensFieldNames di) #else- map (EVar NoNamespace . unqualFName . stripPrefix . fieldName) (F.toList (fields di))+ map (EVar NoNamespace . unqualFName . stripPrefix) (lensFieldNames di) #endif else [] where stripPrefix pfn = pfn { baseNamePrefix' = "" }+ lensFieldNames di = map fieldName (F.toList (fields di))+ ++ map oneofFName (F.toList (descOneofs di)) minimalImports :: [ImportDecl] minimalImports =
hprotoc.cabal view
@@ -1,5 +1,5 @@ name: hprotoc-version: 2.2.0+version: 2.3.0 cabal-version: >= 1.6 build-type: Simple license: BSD3@@ -20,8 +20,8 @@ location: git://github.com/k-bx/protocol-buffers.git Executable hprotoc- build-depends: protocol-buffers == 2.2.0,- protocol-buffers-descriptor == 2.2.0+ build-depends: protocol-buffers == 2.3.0,+ protocol-buffers-descriptor == 2.3.0 Main-Is: Text/ProtocolBuffers/ProtoCompile.hs Hs-Source-Dirs: ., protoc-gen-haskell@@ -69,8 +69,8 @@ TypeSynonymInstances Library- build-depends: protocol-buffers == 2.2.0,- protocol-buffers-descriptor == 2.2.0+ build-depends: protocol-buffers == 2.3.0,+ protocol-buffers-descriptor == 2.3.0 Hs-Source-Dirs: ., protoc-gen-haskell build-tools: alex