Skip to content

Commit 1ec6fcf

Browse files
committed
Cabal 3.4: FieldGrammar (#1016)
1 parent 5a8d37e commit 1ec6fcf

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

src/Distribution/Server/Features/BuildReports/BuildReport.hs

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1-
{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving, RecordWildCards,
2-
TemplateHaskell, TypeFamilies, FlexibleInstances, MultiParamTypeClasses,
3-
OverloadedStrings #-}
1+
{-# LANGUAGE ConstraintKinds #-}
2+
{-# LANGUAGE DeriveDataTypeable #-}
3+
{-# LANGUAGE FlexibleInstances #-}
4+
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5+
{-# LANGUAGE MultiParamTypeClasses #-}
6+
{-# LANGUAGE OverloadedStrings #-}
7+
{-# LANGUAGE RecordWildCards #-}
8+
{-# LANGUAGE TemplateHaskell #-}
9+
{-# LANGUAGE TypeFamilies #-}
410
-----------------------------------------------------------------------------
511
-- |
612
-- Module : Distribution.Client.Reporting
@@ -52,14 +58,16 @@ import Distribution.CabalSpecVersion
5258
import Distribution.Pretty
5359
( Pretty(..), pretty, prettyShow )
5460
import qualified Text.PrettyPrint as Disp
55-
import Distribution.Parsec.Newtypes
61+
5662
import Distribution.Parsec
5763
( Parsec(..), PError(..), parsec )
5864
import qualified Distribution.Parsec as P
5965
import qualified Distribution.Compat.CharParsing as P
6066
import Distribution.FieldGrammar
6167
( FieldGrammar, parseFieldGrammar, prettyFieldGrammar, partitionFields
62-
, uniqueField, uniqueFieldAla, booleanFieldDef, monoidalFieldAla )
68+
, uniqueField, uniqueFieldAla, booleanFieldDef, monoidalFieldAla
69+
, List, alaList
70+
, VCat(..), FSep(..) )
6371
import Distribution.Fields.Parser
6472
( readFields )
6573
import Distribution.Fields.Pretty
@@ -83,6 +91,7 @@ import Text.StringTemplate.Classes
8391

8492
import Data.String (fromString)
8593
import Data.Aeson
94+
import Data.Functor.Identity (Identity)
8695
import Data.List
8796
( unfoldr, isInfixOf )
8897
import Data.List.NonEmpty (toList)
@@ -308,7 +317,21 @@ show = showFields (const []) . prettyFieldGrammar CabalSpecV2_4 fieldDescrs
308317
-- -----------------------------------------------------------------------------
309318
-- Description of the fields, for parsing/printing
310319

311-
fieldDescrs :: (Applicative (g BuildReport), FieldGrammar g) => g BuildReport BuildReport
320+
321+
fieldDescrs
322+
:: ( Applicative (g BuildReport), FieldGrammar c g
323+
, c (Identity Arch)
324+
, c (Identity CompilerId)
325+
, c (List FSep (Identity FlagAss1) FlagAss1)
326+
-- , c (Identity FlagAssignment)
327+
, c (Identity InstallOutcome)
328+
, c (Identity OS)
329+
, c (Identity Outcome)
330+
, c (Identity PackageIdentifier)
331+
, c (List VCat (Identity PackageIdentifier) PackageIdentifier)
332+
, c Time
333+
)
334+
=> g BuildReport BuildReport
312335
fieldDescrs =
313336
BuildReport
314337
<$> uniqueField "package" packageL

0 commit comments

Comments
 (0)