Commit 49f5c6c3 authored by Ben Gamari's avatar Ben Gamari Committed by Ben Gamari

Plugins: Add documentation and missing exports

Summary:
Previously the TcPlugin and CorePlugin type synonyms were not exporting,
resulting in much confusion.

Reviewers: mpickering

Reviewed By: mpickering

Subscribers: rwbarton, carter

Differential Revision: https://phabricator.haskell.org/D5237
parent e69590f1
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE CPP #-}
module Plugins (
FrontendPlugin(..), defaultFrontendPlugin, FrontendPluginAction
, Plugin(..), CommandLineOption, LoadedPlugin(..), lpModuleName
, defaultPlugin, keepRenamedSource, withPlugins, withPlugins_
, PluginRecompile(..)
-- * Plugins
Plugin(..)
, defaultPlugin
, CommandLineOption
-- ** Recompilation checking
, purePlugin, impurePlugin, flagRecompile
, PluginRecompile(..)
-- * Plugin types
-- ** Frontend plugins
, FrontendPlugin(..), defaultFrontendPlugin, FrontendPluginAction
-- ** Core plugins
-- | Core plugins allow plugins to register as a Core-to-Core pass.
, CorePlugin
-- ** Typechecker plugins
-- | Typechecker plugins allow plugins to provide evidence to the
-- typechecker.
, TcPlugin
-- ** Source plugins
-- | GHC offers a number of points where plugins can access and modify its
-- front-end (\"source\") representation. These include:
--
-- - access to the parser result with 'parsedResultAction'
-- - access to the renamed AST with 'renamedResultAction'
-- - access to the typechecked AST with 'typeCheckResultAction'
-- - access to the Template Haskell splices with 'spliceRunAction'
-- - access to loaded interface files with 'interfaceLoadAction'
--
, keepRenamedSource
-- * Internal
, LoadedPlugin(..), lpModuleName
, withPlugins, withPlugins_
) where
import GhcPrelude
......
......@@ -2821,7 +2821,7 @@ withTcPlugins hsc_env m =
do s <- runTcPluginM start ev_binds_var
return (solve s, stop s)
getTcPlugins :: DynFlags -> [TcPlugin]
getTcPlugins :: DynFlags -> [TcRnMonad.TcPlugin]
getTcPlugins dflags = catMaybes $ map get_plugin (plugins dflags)
where get_plugin p = tcPlugin (lpPlugin p) (lpArguments p)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment