Fix/update SayAnnNames plugin example code.
authorErik de Castro Lopo <erikd@mega-nerd.com>
Sat, 4 May 2013 18:34:38 +0000 (04:34 +1000)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Sat, 4 May 2013 19:07:45 +0000 (05:07 +1000)
docs/users_guide/extending_ghc.xml

index 1abe8a8..dc8d5b4 100644 (file)
@@ -247,9 +247,8 @@ pass = do dflags &lt;- getDynFlags
 {-# LANGUAGE DeriveDataTypeable #-}
 module SayAnnNames.Plugin (plugin, SomeAnn) where
 import GhcPlugins
-import Control.Monad (when)
+import Control.Monad (unless)
 import Data.Data
-import Data.Typeable
 
 data SomeAnn = SomeAnn deriving (Data, Typeable)
 
@@ -264,13 +263,15 @@ install _ todo = do
   return (CoreDoPluginPass "Say name" pass : todo)
 
 pass :: ModGuts -> CoreM ModGuts
-pass g = mapM_ (printAnn g) (mg_binds g) >> return g
-  where printAnn :: ModGuts -> CoreBind -> CoreM CoreBind
-        printAnn guts bndr@(NonRec b _) = do
+pass g = do
+          dflags &lt;- getDynFlags
+          mapM_ (printAnn dflags g) (mg_binds g) >> return g
+  where printAnn :: DynFlags -> ModGuts -> CoreBind -> CoreM CoreBind
+        printAnn dflags guts bndr@(NonRec b _) = do
           anns &lt;- annotationsOn guts b :: CoreM [SomeAnn]
-          when (not $ null anns) $ putMsgS $ "Annotated binding found: " ++  showSDoc (ppr b)
+          unless (null anns) $ putMsgS $ "Annotated binding found: " ++  showSDoc dflags (ppr b)
           return bndr
-        printAnn _ bndr = return bndr
+        printAnn _ bndr = return bndr
 
 annotationsOn :: Data a => ModGuts -> CoreBndr -> CoreM [a]
 annotationsOn guts bndr = do