diff options
Diffstat (limited to 'haddock-api/src/Haddock')
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Hoogle.hs | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/haddock-api/src/Haddock/Backends/Hoogle.hs b/haddock-api/src/Haddock/Backends/Hoogle.hs index 5f77c38c..7e2ce2f2 100644 --- a/haddock-api/src/Haddock/Backends/Hoogle.hs +++ b/haddock-api/src/Haddock/Backends/Hoogle.hs @@ -266,8 +266,14 @@ 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 NoExt NotPromoted . reL) $ -                        (tcdName dat) : [hsTyVarName v | L _ v@(UserTyVar _ _) <- hsQTvExplicit $ tyClDeclTyVars dat] +        resType = let c  = HsTyVar NoExt NotPromoted (noLoc (tcdName dat)) +                      as = map (tyVarBndr2Type . unLoc) (hsQTvExplicit $ tyClDeclTyVars dat) +                  in apps (map noLoc (c : as)) + +        tyVarBndr2Type :: HsTyVarBndr GhcRn -> HsType GhcRn +        tyVarBndr2Type (UserTyVar _ n) = HsTyVar NoExt NotPromoted n +        tyVarBndr2Type (KindedTyVar _ n k) = HsKindSig NoExt (noLoc (HsTyVar NoExt NotPromoted n)) k +        tyVarBndr2Type (XTyVarBndr _) = panic "haddock:ppCtor"  ppCtor dflags _dat subdocs con@(ConDeclGADT { })     = concatMap (lookupCon dflags subdocs) (getConNames con) ++ f | 
