{-# LANGUAGE CPP #-}
module NriPrelude.Plugin.GhcVersionDependent
( setIDeclImplicit,
withParsedResult,
)
where
import qualified GHC.Driver.Plugins
import qualified GHC.Hs
import qualified GHC.Hs.ImpExp
import Prelude
withParsedResult :: GHC.Driver.Plugins.ParsedResult -> (GHC.Hs.HsParsedModule -> GHC.Hs.HsParsedModule) -> GHC.Driver.Plugins.ParsedResult
withParsedResult :: ParsedResult -> (HsParsedModule -> HsParsedModule) -> ParsedResult
withParsedResult ParsedResult
parsed HsParsedModule -> HsParsedModule
f =
ParsedResult
parsed
{ GHC.Driver.Plugins.parsedResultModule = f (GHC.Driver.Plugins.parsedResultModule parsed)
}
setIDeclImplicit :: Bool -> GHC.Hs.ImpExp.ImportDecl GHC.Hs.GhcPs -> GHC.Hs.ImpExp.ImportDecl GHC.Hs.GhcPs
setIDeclImplicit :: Bool -> ImportDecl GhcPs -> ImportDecl GhcPs
setIDeclImplicit Bool
isImplicit ImportDecl GhcPs
importDecl =
let xImportDeclPass :: XCImportDecl GhcPs
xImportDeclPass = ImportDecl GhcPs -> XCImportDecl GhcPs
forall pass. ImportDecl pass -> XCImportDecl pass
GHC.Hs.ImpExp.ideclExt ImportDecl GhcPs
importDecl
in ImportDecl GhcPs
importDecl
{ GHC.Hs.ImpExp.ideclExt =
xImportDeclPass {GHC.Hs.ImpExp.ideclImplicit = isImplicit}
}