diff options
| author | Alan Zimmerman <alan.zimm@gmail.com> | 2018-04-19 14:04:04 +0200 | 
|---|---|---|
| committer | Alan Zimmerman <alan.zimm@gmail.com> | 2018-04-27 15:36:53 +0200 | 
| commit | 271a9cb0c7a070deef8df2d4fb54ebe47a0bf560 (patch) | |
| tree | db4c5f3609760f44e3571a33419a726f42af6f54 /haddock-api/src/Haddock/Backends | |
| parent | 0d903e5e7ea877cbf6e8a7a84c9c8b6ef8c78ef6 (diff) | |
Match changes in GHC for TTG
Diffstat (limited to 'haddock-api/src/Haddock/Backends')
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Hoogle.hs | 21 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Hyperlinker/Ast.hs | 18 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Backends/LaTeX.hs | 43 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Xhtml.hs | 2 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Xhtml/Decl.hs | 49 | 
5 files changed, 76 insertions, 57 deletions
diff --git a/haddock-api/src/Haddock/Backends/Hoogle.hs b/haddock-api/src/Haddock/Backends/Hoogle.hs index 09f62a19..2c7be079 100644 --- a/haddock-api/src/Haddock/Backends/Hoogle.hs +++ b/haddock-api/src/Haddock/Backends/Hoogle.hs @@ -126,12 +126,12 @@ ppExport dflags ExportDecl { expItemDecl    = L _ decl                             , expItemFixities = fixities                             } = ppDocumentation dflags dc ++ f decl      where -        f (TyClD d@DataDecl{})  = ppData dflags d subdocs -        f (TyClD d@SynDecl{})   = ppSynonym dflags d -        f (TyClD d@ClassDecl{}) = ppClass dflags d subdocs -        f (ForD (ForeignImport name typ _ _)) = [pp_sig dflags [name] (hsSigType typ)] -        f (ForD (ForeignExport name typ _ _)) = [pp_sig dflags [name] (hsSigType typ)] -        f (SigD sig) = ppSig dflags sig ++ ppFixities +        f (TyClD _ d@DataDecl{})  = ppData dflags d subdocs +        f (TyClD _ d@SynDecl{})   = ppSynonym dflags d +        f (TyClD _ d@ClassDecl{}) = ppClass dflags d subdocs +        f (ForD _ (ForeignImport _ name typ _)) = [pp_sig dflags [name] (hsSigType typ)] +        f (ForD _ (ForeignExport _ name typ _)) = [pp_sig dflags [name] (hsSigType typ)] +        f (SigD _ sig) = ppSig dflags sig ++ ppFixities          f _ = []          ppFixities = concatMap (ppFixity dflags) fixities @@ -189,7 +189,7 @@ ppClass dflags decl subdocs =              , tcdTyVars = feqn_pats tfe              , tcdFixity = feqn_fixity tfe              , tcdRhs    = feqn_rhs tfe -            , tcdFVs    = emptyNameSet +            , tcdSExt   = emptyNameSet              } @@ -241,8 +241,8 @@ ppCtor dflags dat subdocs con@ConDeclH98 {}                             [out dflags (map (extFieldOcc . unLoc) $ cd_fld_names r) `typeSig` [resType, cd_fld_type r]]                            | r <- map unLoc recs] -        funs = foldr1 (\x y -> reL $ HsFunTy PlaceHolder x y) -        apps = foldl1 (\x y -> reL $ HsAppTy PlaceHolder x y) +        funs = foldr1 (\x y -> reL $ HsFunTy NoExt x y) +        apps = foldl1 (\x y -> reL $ HsAppTy NoExt x y)          typeSig nm flds = operator nm ++ " :: " ++ outHsType dflags (unL $ funs flds) @@ -250,7 +250,7 @@ ppCtor dflags dat subdocs con@ConDeclH98 {}          -- docs for con_names on why it is a list to begin with.          name = commaSeparate dflags . map unL $ getConNames con -        resType = apps $ map (reL . HsTyVar PlaceHolder NotPromoted . reL) $ +        resType = apps $ map (reL . HsTyVar NoExt NotPromoted . reL) $                          (tcdName dat) : [hsTyVarName v | L _ v@(UserTyVar _ _) <- hsQTvExplicit $ tyClDeclTyVars dat]  ppCtor dflags _dat subdocs con@(ConDeclGADT { }) @@ -260,6 +260,7 @@ ppCtor dflags _dat subdocs con@(ConDeclGADT { })          typeSig nm ty = operator nm ++ " :: " ++ outHsType dflags (unL ty)          name = out dflags $ map unL $ getConNames con +ppCtor _ _ _ XConDecl {} = panic "haddock:ppCtor"  ppFixity :: DynFlags -> (Name, Fixity) -> [String]  ppFixity dflags (name, fixity) = [out dflags ((FixitySig noExt [noLoc name] fixity) :: FixitySig GhcRn)] diff --git a/haddock-api/src/Haddock/Backends/Hyperlinker/Ast.hs b/haddock-api/src/Haddock/Backends/Hyperlinker/Ast.hs index 19d638d9..56137f51 100644 --- a/haddock-api/src/Haddock/Backends/Hyperlinker/Ast.hs +++ b/haddock-api/src/Haddock/Backends/Hyperlinker/Ast.hs @@ -12,6 +12,7 @@ import qualified Haddock.Syb as Syb  import Haddock.Backends.Hyperlinker.Types  import qualified GHC +import qualified Outputable as GHC  import Control.Applicative  import Control.Monad (guard) @@ -146,9 +147,10 @@ decls (group, _, _, _) = concatMap ($ group)    where      typ (GHC.L _ t) = case t of          GHC.DataDecl { tcdLName = name } -> pure . decl $ name -        GHC.SynDecl name _ _ _ _ -> pure . decl $ name -        GHC.FamDecl fam -> pure . decl $ GHC.fdLName fam +        GHC.SynDecl _ name _ _ _ -> pure . decl $ name +        GHC.FamDecl _ fam -> pure . decl $ GHC.fdLName fam          GHC.ClassDecl{..} -> [decl tcdLName] ++ concatMap sig tcdSigs +        GHC.XTyClDecl {} -> GHC.panic "haddock:decls"      fun term = case cast term of          (Just (GHC.FunBind _ (GHC.L sspan name) _ _ _ :: GHC.HsBind GHC.GhcRn))              | GHC.isExternalName name -> pure (sspan, RtkDecl name) @@ -159,10 +161,10 @@ decls (group, _, _, _) = concatMap ($ group)                ++ everythingInRenamedSource fld cdcl          Nothing -> empty      ins term = case cast term of -        (Just ((GHC.DataFamInstD (GHC.DataFamInstDecl eqn)) +        (Just ((GHC.DataFamInstD _ (GHC.DataFamInstDecl eqn))                  :: GHC.InstDecl GHC.GhcRn))            -> pure . tyref $ GHC.feqn_tycon $ GHC.hsib_body eqn -        (Just (GHC.TyFamInstD (GHC.TyFamInstDecl eqn))) -> +        (Just (GHC.TyFamInstD _ (GHC.TyFamInstDecl eqn))) ->              pure . tyref $ GHC.feqn_tycon $ GHC.hsib_body eqn          _ -> empty      fld term = case cast term of @@ -183,10 +185,10 @@ imports src@(_, imps, _, _) =      everythingInRenamedSource ie src ++ mapMaybe (imp . GHC.unLoc) imps    where      ie term = case cast term of -        (Just ((GHC.IEVar v) :: GHC.IE GHC.GhcRn)) -> pure $ var $ GHC.ieLWrappedName v -        (Just (GHC.IEThingAbs t)) -> pure $ typ $ GHC.ieLWrappedName t -        (Just (GHC.IEThingAll t)) -> pure $ typ $ GHC.ieLWrappedName t -        (Just (GHC.IEThingWith t _ vs _fls)) -> +        (Just ((GHC.IEVar _ v) :: GHC.IE GHC.GhcRn)) -> pure $ var $ GHC.ieLWrappedName v +        (Just (GHC.IEThingAbs _ t)) -> pure $ typ $ GHC.ieLWrappedName t +        (Just (GHC.IEThingAll _ t)) -> pure $ typ $ GHC.ieLWrappedName t +        (Just (GHC.IEThingWith _ t _ vs _fls)) ->            [typ $ GHC.ieLWrappedName t] ++ map (var . GHC.ieLWrappedName) vs          _ -> empty      typ (GHC.L sspan name) = (sspan, RtkType name) diff --git a/haddock-api/src/Haddock/Backends/LaTeX.hs b/haddock-api/src/Haddock/Backends/LaTeX.hs index 4535979e..1b2515fa 100644 --- a/haddock-api/src/Haddock/Backends/LaTeX.hs +++ b/haddock-api/src/Haddock/Backends/LaTeX.hs @@ -216,7 +216,7 @@ processExports (e : es) =  isSimpleSig :: ExportItem DocNameI -> Maybe ([DocName], HsType DocNameI) -isSimpleSig ExportDecl { expItemDecl = L _ (SigD (TypeSig _ lnames t)) +isSimpleSig ExportDecl { expItemDecl = L _ (SigD _ (TypeSig _ lnames t))                         , expItemMbDoc = (Documentation Nothing Nothing, argDocs) }    | Map.null argDocs = Just (map unLoc lnames, unLoc (hsSigWcType t))  isSimpleSig _ = Nothing @@ -256,11 +256,11 @@ declNames :: LHsDecl DocNameI               , [DocName]       -- ^ names being declared               )  declNames (L _ decl) = case decl of -  TyClD d  -> (empty, [tcdName d]) -  SigD (TypeSig _ lnames _ ) -> (empty, map unLoc lnames) -  SigD (PatSynSig _ lnames _) -> (text "pattern", map unLoc lnames) -  ForD (ForeignImport (L _ n) _ _ _) -> (empty, [n]) -  ForD (ForeignExport (L _ n) _ _ _) -> (empty, [n]) +  TyClD _ d  -> (empty, [tcdName d]) +  SigD _ (TypeSig _ lnames _ ) -> (empty, map unLoc lnames) +  SigD _ (PatSynSig _ lnames _) -> (text "pattern", map unLoc lnames) +  ForD _ (ForeignImport _ (L _ n) _ _) -> (empty, [n]) +  ForD _ (ForeignExport _ (L _ n) _ _) -> (empty, [n])    _ -> error "declaration not supported by declNames" @@ -293,20 +293,20 @@ ppDecl :: LHsDecl DocNameI                         -- ^ decl to print         -> LaTeX  ppDecl decl pats (doc, fnArgsDoc) instances subdocs _fxts = case unLoc decl of -  TyClD d@FamDecl {}         -> ppTyFam False doc d unicode -  TyClD d@DataDecl {}        -> ppDataDecl pats instances subdocs (Just doc) d unicode -  TyClD d@SynDecl {}         -> ppTySyn (doc, fnArgsDoc) d unicode +  TyClD _ d@FamDecl {}         -> ppTyFam False doc d unicode +  TyClD _ d@DataDecl {}        -> ppDataDecl pats instances subdocs (Just doc) d unicode +  TyClD _ d@SynDecl {}         -> ppTySyn (doc, fnArgsDoc) d unicode  -- Family instances happen via FamInst now ---  TyClD d@TySynonym{} +--  TyClD _ d@TySynonym{}  --    | Just _  <- tcdTyPats d    -> ppTyInst False loc doc d unicode  -- Family instances happen via FamInst now -  TyClD d@ClassDecl{}          -> ppClassDecl instances doc subdocs d unicode -  SigD (TypeSig _ lnames ty)   -> ppFunSig (doc, fnArgsDoc) (map unLoc lnames) (hsSigWcType ty) unicode -  SigD (PatSynSig _ lnames ty) -> ppLPatSig (doc, fnArgsDoc) (map unLoc lnames) ty unicode -  ForD d                       -> ppFor (doc, fnArgsDoc) d unicode -  InstD _                      -> empty -  DerivD _                     -> empty -  _                            -> error "declaration not supported by ppDecl" +  TyClD _ d@ClassDecl{}          -> ppClassDecl instances doc subdocs d unicode +  SigD _ (TypeSig _ lnames ty)   -> ppFunSig (doc, fnArgsDoc) (map unLoc lnames) (hsSigWcType ty) unicode +  SigD _ (PatSynSig _ lnames ty) -> ppLPatSig (doc, fnArgsDoc) (map unLoc lnames) ty unicode +  ForD _ d                       -> ppFor (doc, fnArgsDoc) d unicode +  InstD _ _                      -> empty +  DerivD _ _                     -> empty +  _                              -> error "declaration not supported by ppDecl"    where      unicode = False @@ -318,7 +318,7 @@ ppTyFam _ _ _ _ =  ppFor :: DocForDecl DocName -> ForeignDecl DocNameI -> Bool -> LaTeX -ppFor doc (ForeignImport (L _ name) typ _ _) unicode = +ppFor doc (ForeignImport _ (L _ name) typ _) unicode =    ppFunSig doc [name] (hsSigType typ) unicode  ppFor _ _ _ = error "ppFor error in Haddock.Backends.LaTeX"  --  error "foreign declarations are currently not supported by --latex" @@ -647,7 +647,7 @@ ppDataDecl pats instances subdocs doc dataDecl unicode =            text "\\enspace" <+> emph (text "Bundled Patterns") <> text "\\par" $$            text "\\haddockbeginconstrs" $$            vcat [ empty <-> ppSideBySidePat lnames typ d unicode -               | (SigD (PatSynSig _ lnames typ), d) <- pats +               | (SigD _ (PatSynSig _ lnames typ), d) <- pats                 ] $$            text "\\end{tabulary}\\par" @@ -726,6 +726,7 @@ ppSideBySideConstr subdocs unicode leader (L _ con) =                              -- ++AZ++ make this prepend "{..}" when it is a record style GADT                              , ppLType unicode (getGADTConType con)                              ] +      XConDecl{} -> panic "haddock:ppSideBySideConstr"      fieldPart = case (con, getConArgs con) of          -- Record style GADTs @@ -759,6 +760,7 @@ ppSideBySideConstr subdocs unicode leader (L _ con) =          [ l <+> text "\\enspace" <+> r          | (l,r) <- ppSubSigLike unicode (unLoc (getGADTConType con)) argDocs subdocs (dcolon unicode)          ] +      XConDecl{} -> panic "haddock:doConstrArgsWithDocs"      -- don't use "con_doc con", in case it's reconstructed from a .hi file, @@ -771,13 +773,14 @@ ppSideBySideConstr subdocs unicode leader (L _ con) =  -- | Pretty-print a record field  ppSideBySideField :: [(DocName, DocForDecl DocName)] -> Bool -> ConDeclField DocNameI ->  LaTeX -ppSideBySideField subdocs unicode (ConDeclField names ltype _) = +ppSideBySideField subdocs unicode (ConDeclField _ names ltype _) =    decltt (cat (punctuate comma (map (ppBinder . rdrNameOcc . unLoc . rdrNameFieldOcc . unLoc) names))      <+> dcolon unicode <+> ppLType unicode ltype) <-> rDoc mbDoc    where      -- don't use cd_fld_doc for same reason we don't use con_doc above      -- Where there is more than one name, they all have the same documentation      mbDoc = lookup (extFieldOcc $ unLoc $ head names) subdocs >>= fmap _doc . combineDocumentation . fst +ppSideBySideField _ _ (XConDeclField _) = panic "haddock:ppSideBySideField"  -- | Pretty-print a bundled pattern synonym diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index 00937245..464c166b 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -663,7 +663,7 @@ numberSectionHeadings = go 1  processExport :: Bool -> LinksInfo -> Bool -> Qualification                -> ExportItem DocNameI -> Maybe Html -processExport _ _ _ _ ExportDecl { expItemDecl = L _ (InstD _) } = Nothing -- Hide empty instances +processExport _ _ _ _ ExportDecl { expItemDecl = L _ (InstD {}) } = Nothing -- Hide empty instances  processExport summary _ _ qual (ExportGroup lev id0 doc)    = nothingIf summary $ groupHeading lev id0 << docToHtml (Just id0) qual (mkMeta doc)  processExport summary links unicode qual (ExportDecl decl pats doc subdocs insts fixities splice) diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs b/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs index 5f253cbd..8ac3d91b 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs @@ -39,6 +39,7 @@ import GHC.Exts  import Name  import BooleanFormula  import RdrName ( rdrNameOcc ) +import Outputable ( panic )  -- | Pretty print a declaration  ppDecl :: Bool                                     -- ^ print summary info only @@ -54,18 +55,18 @@ ppDecl :: Bool                                     -- ^ print summary info only         -> Qualification         -> Html  ppDecl summ links (L loc decl) pats (mbDoc, fnArgsDoc) instances fixities subdocs splice unicode qual = case decl of -  TyClD (FamDecl d)            -> ppTyFam summ False links instances fixities loc mbDoc d splice unicode qual -  TyClD d@(DataDecl {})        -> ppDataDecl summ links instances fixities subdocs loc mbDoc d pats splice unicode qual -  TyClD d@(SynDecl {})         -> ppTySyn summ links fixities loc (mbDoc, fnArgsDoc) d splice unicode qual -  TyClD d@(ClassDecl {})       -> ppClassDecl summ links instances fixities loc mbDoc subdocs d splice unicode qual -  SigD (TypeSig _ lnames lty)  -> ppLFunSig summ links loc (mbDoc, fnArgsDoc) lnames +  TyClD _ (FamDecl _ d)          -> ppTyFam summ False links instances fixities loc mbDoc d splice unicode qual +  TyClD _ d@(DataDecl {})        -> ppDataDecl summ links instances fixities subdocs loc mbDoc d pats splice unicode qual +  TyClD _ d@(SynDecl {})         -> ppTySyn summ links fixities loc (mbDoc, fnArgsDoc) d splice unicode qual +  TyClD _ d@(ClassDecl {})       -> ppClassDecl summ links instances fixities loc mbDoc subdocs d splice unicode qual +  SigD _ (TypeSig _ lnames lty)  -> ppLFunSig summ links loc (mbDoc, fnArgsDoc) lnames                                           (hsSigWcType lty) fixities splice unicode qual -  SigD (PatSynSig _ lnames lty) -> ppLPatSig summ links loc (mbDoc, fnArgsDoc) lnames +  SigD _ (PatSynSig _ lnames lty) -> ppLPatSig summ links loc (mbDoc, fnArgsDoc) lnames                                           (hsSigType lty) fixities splice unicode qual -  ForD d                       -> ppFor summ links loc (mbDoc, fnArgsDoc) d fixities splice unicode qual -  InstD _                      -> noHtml -  DerivD _                     -> noHtml -  _                            -> error "declaration not supported by ppDecl" +  ForD _ d                       -> ppFor summ links loc (mbDoc, fnArgsDoc) d fixities splice unicode qual +  InstD _ _                      -> noHtml +  DerivD _ _                     -> noHtml +  _                              -> error "declaration not supported by ppDecl"  ppLFunSig :: Bool -> LinksInfo -> SrcSpan -> DocForDecl DocName -> @@ -225,7 +226,7 @@ tyvarNames = map (getName . hsLTyVarName) . hsQTvExplicit  ppFor :: Bool -> LinksInfo -> SrcSpan -> DocForDecl DocName        -> ForeignDecl DocNameI -> [(DocName, Fixity)]        -> Splice -> Unicode -> Qualification -> Html -ppFor summary links loc doc (ForeignImport (L _ name) typ _ _) fixities +ppFor summary links loc doc (ForeignImport _ (L _ name) typ _) fixities        splice unicode qual    = ppFunSig summary links loc doc [name] (hsSigType typ) fixities splice unicode qual  ppFor _ _ _ _ _ _ _ _ _ = error "ppFor" @@ -318,12 +319,14 @@ ppTyFamHeader summary associated d@(FamilyDecl { fdInfo = info       ClosedTypeFamily _ -> keyword "where ..."       _                  -> mempty    ) +ppTyFamHeader _ _ (XFamilyDecl _) _ _ = panic "haddock;ppTyFamHeader"  ppResultSig :: FamilyResultSig DocNameI -> Unicode -> Qualification -> Html  ppResultSig result unicode qual = case result of -    NoSig               -> noHtml -    KindSig kind        -> dcolon unicode  <+> ppLKind unicode qual kind -    TyVarSig (L _ bndr) -> equals <+> ppHsTyVarBndr unicode qual bndr +    NoSig _               -> noHtml +    KindSig _ kind        -> dcolon unicode  <+> ppLKind unicode qual kind +    TyVarSig _ (L _ bndr) -> equals <+> ppHsTyVarBndr unicode qual bndr +    XFamilyResultSig _    -> panic "haddock:ppResultSig"  ppPseudoFamilyHeader :: Unicode -> Qualification -> PseudoFamilyDecl DocNameI                       -> Html @@ -367,6 +370,8 @@ ppTyFam summary associated links instances fixities loc doc decl splice unicode        = ( ppAppNameTypes (unLoc n) (map unLoc ts) unicode qual            <+> equals <+> ppType unicode qual HideEmptyContexts (unLoc rhs)          , Nothing, [] ) +    ppTyFamEqn (XHsImplicitBndrs _) = panic "haddock:ppTyFam" +    ppTyFamEqn (HsIB { hsib_body = XFamEqn _}) = panic "haddock:ppTyFam" @@ -399,6 +404,7 @@ ppAssocType summ links doc (L loc decl) fixities splice unicode qual =  ppFamDeclBinderWithVars :: Bool -> Unicode -> Qualification -> FamilyDecl DocNameI -> Html  ppFamDeclBinderWithVars summ unicode qual (FamilyDecl { fdLName = lname, fdTyVars = tvs }) =    ppAppDocNameTyVarBndrs summ unicode qual (unLoc lname) (hsq_explicit tvs) +ppFamDeclBinderWithVars _ _ _ (XFamilyDecl _) = panic "haddock:ppFamDeclBinderWithVars"  -- | Print a newtype / data binder and its variables  ppDataBinderWithVars :: Bool -> Unicode -> Qualification -> TyClDecl DocNameI -> Html @@ -740,13 +746,14 @@ ppShortDataDecl summary dataInst dataDecl pats unicode qual      isH98     = case unLoc (head cons) of                    ConDeclH98 {} -> True                    ConDeclGADT{} -> False +                  XConDecl{}    -> False      pats1 = [ hsep [ keyword "pattern"                     , hsep $ punctuate comma $ map (ppBinder summary . getOccName) lnames                     , dcolon unicode                     , ppPatSigType unicode qual (hsSigType typ)                     ] -            | (SigD (PatSynSig _ lnames typ),_) <- pats +            | (SigD _ (PatSynSig _ lnames typ),_) <- pats              ] @@ -772,6 +779,7 @@ ppDataDecl summary links instances fixities subdocs loc doc dataDecl pats      isH98     = case unLoc (head cons) of                    ConDeclH98 {} -> True                    ConDeclGADT{} -> False +                  XConDecl{}    -> False      header_ = topDeclElem links loc splice [docname] $               ppDataHeader summary dataDecl unicode qual <+> whereBit <+> fix @@ -793,7 +801,7 @@ ppDataDecl summary links instances fixities subdocs loc doc dataDecl pats      patternBit = subPatterns qual        [ ppSideBySidePat subfixs unicode qual lnames typ d -      | (SigD (PatSynSig _ lnames typ), d) <- pats +      | (SigD _ (PatSynSig _ lnames typ), d) <- pats        , let subfixs = filter (\(n,_) -> any (\cn -> cn == n)                                              (map unLoc lnames)) fixities        ] @@ -854,6 +862,7 @@ ppShortConstrParts summary dataInst con unicode qual            , noHtml            , noHtml            ) +      XConDecl {} -> panic "haddock:ppShortConstrParts"    where      occ        = map (nameOccName . getName . unLoc) $ getConNames con @@ -923,6 +932,7 @@ ppSideBySideConstr subdocs fixities unicode qual (L _ con)                                , ppLType unicode qual HideEmptyContexts (getGADTConType con)                                , fixity                                ] +      XConDecl{} -> panic "haddock:ppSideBySideConstr"      fieldPart = case (con, getConArgs con) of          -- Record style GADTs @@ -951,6 +961,7 @@ ppSideBySideConstr subdocs fixities unicode qual (L _ con)        ConDeclGADT{} ->          ppSubSigLike unicode qual (unLoc (getGADTConType con))                       argDocs subdocs (dcolon unicode) HideEmptyContexts +      XConDecl{} -> panic "haddock:doConstrArgsWithDocs"      -- don't use "con_doc con", in case it's reconstructed from a .hi file,      -- or also because we want Haddock to do the doc-parsing, not GHC. @@ -980,7 +991,7 @@ ppConstrHdr forall_ tvs ctxt unicode qual = ppForall +++ ppCtxt  -- | Pretty-print a record field  ppSideBySideField :: [(DocName, DocForDecl DocName)] -> Unicode -> Qualification                    -> ConDeclField DocNameI -> SubDecl -ppSideBySideField subdocs unicode qual (ConDeclField names ltype _) = +ppSideBySideField subdocs unicode qual (ConDeclField _ names ltype _) =    ( hsep (punctuate comma [ ppBinder False (rdrNameOcc field)                            | L _ name <- names                            , let field = (unLoc . rdrNameFieldOcc) name @@ -994,12 +1005,14 @@ ppSideBySideField subdocs unicode qual (ConDeclField names ltype _) =      -- don't use cd_fld_doc for same reason we don't use con_doc above      -- Where there is more than one name, they all have the same documentation      mbDoc = lookup (extFieldOcc $ unLoc $ head names) subdocs >>= combineDocumentation . fst +ppSideBySideField _ _ _ (XConDeclField _) = panic "haddock:ppSideBySideField"  ppShortField :: Bool -> Unicode -> Qualification -> ConDeclField DocNameI -> Html -ppShortField summary unicode qual (ConDeclField names ltype _) +ppShortField summary unicode qual (ConDeclField _ names ltype _)    = hsep (punctuate comma (map ((ppBinder summary) . rdrNameOcc . unLoc . rdrNameFieldOcc . unLoc) names))      <+> dcolon unicode <+> ppLType unicode qual HideEmptyContexts ltype +ppShortField _ _ _ (XConDeclField _) = panic "haddock:ppShortField"  -- | Pretty print an expanded pattern (for bundled patterns)  | 
