diff options
-rw-r--r-- | src/Haddock.hs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Haddock.hs b/src/Haddock.hs index 398aed4c..a7ac5baf 100644 --- a/src/Haddock.hs +++ b/src/Haddock.hs @@ -34,6 +34,7 @@ import Haddock.GhcUtils hiding (pretty) import Control.Monad hiding (forM_) import Data.Foldable (forM_) +import Data.List (isPrefixOf) import Control.Exception import Data.Maybe import Data.IORef @@ -144,6 +145,10 @@ haddock args = handleTopExceptions $ do Just "YES" -> return $ Flag_OptGhc "-dynamic-too" : flags _ -> return flags + unless (Flag_NoWarnings `elem` flags) $ do + forM_ (warnings args) $ \warning -> do + hPutStrLn stderr warning + withGhc' flags' $ do dflags <- getDynFlags @@ -171,6 +176,12 @@ haddock args = handleTopExceptions $ do -- Render even though there are no input files (usually contents/index). liftIO $ renderStep dflags flags qual packages [] +-- | Create warnings about potential misuse of -optghc +warnings :: [String] -> [String] +warnings = map format . filter (isPrefixOf "-optghc") + where + format arg = concat ["Warning: `", arg, "' means `-o ", drop 2 arg, "', did you mean `-", arg, "'?"] + withGhc' :: [Flag] -> Ghc a -> IO a withGhc' flags action = do |