diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/HaddockHtml.hs | 31 | ||||
| -rw-r--r-- | src/HaddockRename.hs | 25 | ||||
| -rw-r--r-- | src/Main.hs | 13 | 
3 files changed, 27 insertions, 42 deletions
diff --git a/src/HaddockHtml.hs b/src/HaddockHtml.hs index 0dd7a189..d43b8270 100644 --- a/src/HaddockHtml.hs +++ b/src/HaddockHtml.hs @@ -41,7 +41,7 @@ import RdrName hiding ( Qual )  import SrcLoc     import FastString            ( unpackFS )  import BasicTypes            ( IPName(..), Boxity(..) ) -import Kind +import Type                  ( Kind )  import Outputable            ( ppr, defaultUserStyle, showSDoc )  -- the base, module and entity URLs for the source code and wiki links. @@ -721,7 +721,8 @@ ppFor summary links loc mbDoc (ForeignImport lname ltype _)    = ppSig summary links loc mbDoc (TypeSig lname ltype)  ppFor _ _ _ _ _ = error "ppFor" -ppTySyn summary links loc mbDoc (TySynonym lname ltyvars ltype)  +-- we skip type patterns for now +ppTySyn summary links loc mbDoc (TySynonym lname ltyvars _ ltype)     = declWithDoc summary links loc n mbDoc (      hsep ([keyword "type", ppBinder summary n]      ++ ppTyVars ltyvars) <+> equals <+> ppLType ltype) @@ -757,10 +758,9 @@ pp_hs_context cxt = parenList (map ppPred cxt)  ppLPred = ppPred . unLoc  ppPred (HsClassP n ts) = ppDocName n <+> hsep (map ppLType ts) -ppPred (HsIParam (Dupable n) t)  +-- TODO: find out what happened to the Dupable/Linear distinction +ppPred (HsIParam (IPName n) t)     = toHtml "?" +++ ppDocName n <+> dcolon <+> ppLType t -ppPred (HsIParam (Linear  n) t)  -  = toHtml "%" +++ ppDocName n <+> dcolon <+> ppLType t  -- -----------------------------------------------------------------------------  -- Class declarations @@ -783,8 +783,9 @@ ppFds fds =  	fundep (vars1,vars2) = hsep (map ppDocName vars1) <+> toHtml "->" <+>  			       hsep (map ppDocName vars2) +-- we skip ATs for now  ppShortClassDecl :: Bool -> LinksInfo -> TyClDecl DocName -> SrcSpan -> DocMap -> HtmlTable -ppShortClassDecl summary links (ClassDecl lctxt lname tvs fds sigs _ _) loc docMap =  +ppShortClassDecl summary links (ClassDecl lctxt lname tvs fds sigs _ _ _) loc docMap =     if null sigs      then (if summary then declBox else topDeclBox links loc nm) hdr      else (if summary then declBox else topDeclBox links loc nm) (hdr <+> keyword "where") @@ -798,11 +799,12 @@ ppShortClassDecl summary links (ClassDecl lctxt lname tvs fds sigs _ _) loc docM      hdr = ppClassHdr summary lctxt nm tvs fds      NoLink nm = unLoc lname +-- we skip ATs for now  ppClassDecl :: Ord key => Bool -> LinksInfo -> [InstHead DocName] -> key -> SrcSpan ->                            Maybe (HsDoc DocName) -> DocMap -> TyClDecl DocName ->                             HtmlTable  ppClassDecl summary links instances orig_c loc mbDoc docMap -	decl@(ClassDecl lctxt lname ltyvars lfds lsigs _ _) +	decl@(ClassDecl lctxt lname ltyvars lfds lsigs _ _ _)    | summary = ppShortClassDecl summary links decl loc docMap    | otherwise      = classheader </> @@ -1075,20 +1077,7 @@ ppDataHeader summary newOrData name tyvars =  -- ----------------------------------------------------------------------------  -- Types and contexts -ppVar = ppOccName . kindVarOcc - -ppParendKind k@(FunKind _ _) = parens (ppKind k) -ppParendKind k               = ppKind k - -ppKind kind = case kind of -  LiftedTypeKind   -> char '*' -  OpenTypeKind     -> char '?' -  UnboxedTypeKind  -> char '#' -  UnliftedTypeKind -> char '!' -  UbxTupleKind     -> toHtml "(#)" -  ArgTypeKind      -> toHtml "??" -  FunKind k1 k2    -> hsep [ppParendKind k1, arrow <+> ppKind k2]  -  KindVar v        -> ppVar v  +ppKind k = toHtml $ showSDoc (ppr k)  {-  ppForAll Implicit _ lctxt = ppCtxtPart lctxt diff --git a/src/HaddockRename.hs b/src/HaddockRename.hs index a5e2daa5..f5c5f99c 100644 --- a/src/HaddockRename.hs +++ b/src/HaddockRename.hs @@ -132,14 +132,10 @@ renamePred (HsClassP name types) = do    name' <- rename name     types' <- mapM renameLType types    return (HsClassP name' types') -renamePred (HsIParam (Dupable name) t) = do +renamePred (HsIParam (IPName name) t) = do    name' <- rename name    t' <- renameLType t -  return (HsIParam (Dupable name') t') -renamePred (HsIParam (Linear name) t) = do -  name' <- rename name -  t' <- renameLType t -  return (HsIParam (Linear name') t') +  return (HsIParam (IPName name') t')  renameLType (L loc t) = return . L loc =<< renameType t @@ -226,25 +222,28 @@ renameTyClD d = case d of   --   name' <- renameL name   --   return (ForeignType name' a b) -  TyData x lcontext lname ltyvars k cons _ -> do +  TyData x lcontext lname ltyvars _ k cons _ -> do      lcontext' <- renameLContext lcontext      ltyvars' <- mapM renameLTyVarBndr ltyvars      cons' <- mapM renameLCon cons -    -- we don't need the derivings -    return (TyData x lcontext' (keepL lname) ltyvars' k cons' Nothing)  +    -- I don't think we need the derivings, so we return Nothing +    -- We skip the type patterns too. TODO: find out what they are :-) +    return (TyData x lcontext' (keepL lname) ltyvars' Nothing k cons' Nothing)  -  TySynonym lname ltyvars ltype -> do +  TySynonym lname ltyvars typat ltype -> do      ltyvars' <- mapM renameLTyVarBndr ltyvars      ltype' <- renameLType ltype -    return (TySynonym (keepL lname) ltyvars' ltype') +    -- We skip type patterns here as well. +    return (TySynonym (keepL lname) ltyvars' Nothing ltype') -  ClassDecl lcontext lname ltyvars lfundeps lsigs _ _ -> do +  ClassDecl lcontext lname ltyvars lfundeps lsigs _ _ _ -> do      lcontext' <- renameLContext lcontext      ltyvars' <- mapM renameLTyVarBndr ltyvars      lfundeps' <- mapM renameLFunDep lfundeps       lsigs' <- mapM renameLSig lsigs      -- we don't need the default methods or the already collected doc entities -    return (ClassDecl lcontext' (keepL lname) ltyvars' lfundeps' lsigs' emptyBag []) +    -- we skip the ATs for now. +    return (ClassDecl lcontext' (keepL lname) ltyvars' lfundeps' lsigs' emptyBag [] [])    where      renameLCon (L loc con) = return . L loc =<< renameCon con diff --git a/src/Main.hs b/src/Main.hs index acf9893a..1b3cc0fa 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -35,8 +35,7 @@ import Data.Map              (Map)  import Distribution.InstalledPackageInfo ( InstalledPackageInfo(..) )  -import qualified GHC         ( init ) -import GHC hiding ( init )  +import GHC  import Outputable  import SrcLoc  import Digraph               ( flattenSCC ) @@ -55,7 +54,6 @@ import FastString  import DynFlags hiding ( Option )  import Packages hiding ( package )   import StaticFlags           ( parseStaticFlags ) -import Unique                ( mkUnique )  -----------------------------------------------------------------------------  -- Top-level stuff @@ -183,11 +181,10 @@ extractGHCFlags flags = [ flag | Flag_GHCFlag flag <- flags ]  startGHC :: String -> IO (Session, DynFlags)  startGHC libDir = do -  GHC.init (Just libDir)    let ghcMode = BatchCompile -  session <- newSession ghcMode +  session <- newSession ghcMode (Just libDir)    flags   <- getSessionDynFlags session -  flags'  <- initPackages flags +  flags'  <- liftM fst (initPackages flags)    let flags'' = dopt_set flags' Opt_Haddock     return (session, flags'') @@ -1213,8 +1210,8 @@ packageDocEnv mods infos = concatMap moduleDocEnv (zip mods infos)  getPackages :: Session -> DynFlags -> IO [PackageData]  getPackages session dynflags = do -  -- get InstalledPackageInfo's for every package in the session -  pkgInfos <- getExplicitPackagesAnd dynflags [] +  -- get InstalledPackageInfos for every package in the session +  pkgInfos <- getPreloadPackagesAnd dynflags []    -- return a list of those packages that we could create PackageData's for     let pkgInfos' = filter notRTS pkgInfos  | 
