ghc-9.8.2: GHC/Rename/Doc.hs
module GHC.Rename.Doc ( rnHsDoc, rnLHsDoc, rnLDocDecl, rnDocDecl ) where
import GHC.Prelude
import GHC.Tc.Types
import GHC.Hs
import GHC.Types.Name.Reader
import GHC.Types.Name
import GHC.Types.SrcLoc
import GHC.Tc.Utils.Monad (getGblEnv)
rnLHsDoc :: LHsDoc GhcPs -> RnM (LHsDoc GhcRn)
rnLHsDoc = traverse rnHsDoc
rnLDocDecl :: LDocDecl GhcPs -> RnM (LDocDecl GhcRn)
rnLDocDecl = traverse rnDocDecl
rnDocDecl :: DocDecl GhcPs -> RnM (DocDecl GhcRn)
rnDocDecl (DocCommentNext doc) = do
doc' <- rnLHsDoc doc
pure $ (DocCommentNext doc')
rnDocDecl (DocCommentPrev doc) = do
doc' <- rnLHsDoc doc
pure $ (DocCommentPrev doc')
rnDocDecl (DocCommentNamed n doc) = do
doc' <- rnLHsDoc doc
pure $ (DocCommentNamed n doc')
rnDocDecl (DocGroup i doc) = do
doc' <- rnLHsDoc doc
pure $ (DocGroup i doc')
rnHsDoc :: WithHsDocIdentifiers a GhcPs -> RnM (WithHsDocIdentifiers a GhcRn)
rnHsDoc (WithHsDocIdentifiers s ids) = do
gre <- tcg_rdr_env <$> getGblEnv
pure (WithHsDocIdentifiers s (rnHsDocIdentifiers gre ids))
rnHsDocIdentifiers :: GlobalRdrEnv
-> [Located RdrName]
-> [Located Name]
rnHsDocIdentifiers gre_env ns =
[ L l $ greName gre
| L l rdr_name <- ns
, gre <- lookupGRE gre_env (LookupRdrName rdr_name AllRelevantGREs)
]