[project @ 2001-03-27 16:55:03 by simonmar]
authorsimonmar <unknown>
Tue, 27 Mar 2001 16:55:03 +0000 (16:55 +0000)
committersimonmar <unknown>
Tue, 27 Mar 2001 16:55:03 +0000 (16:55 +0000)
CmdLineOpts:
- add dopt_set and dopt_unset utils.

InteractiveUI:
- unset -fwarn-unused-binds before evaluating a statement,
  to avoid bogus warnings about new bindings.

ghc/compiler/ghci/InteractiveUI.hs
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/main/DriverFlags.hs

index bb696c8..cd531b2 100644 (file)
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------------
--- $Id: InteractiveUI.hs,v 1.57 2001/03/25 13:29:54 simonmar Exp $
+-- $Id: InteractiveUI.hs,v 1.58 2001/03/27 16:55:03 simonmar Exp $
 --
 -- GHC Interactive User Interface
 --
@@ -22,6 +22,7 @@ import Linker
 import Util
 import Name            ( Name )
 import Outputable
+import CmdLineOpts     ( DynFlag(..), dopt_unset )
 import Panic           ( GhcException(..) )
 import Config
 
@@ -254,7 +255,8 @@ runStmt stmt
  | otherwise
  = do st <- getGHCiState
       dflags <- io (getDynFlags)
-      (new_cmstate, names) <- io (cmRunStmt (cmstate st) dflags stmt)
+      let dflags' = dopt_unset dflags Opt_WarnUnusedBinds
+      (new_cmstate, names) <- io (cmRunStmt (cmstate st) dflags' stmt)
       setGHCiState st{cmstate = new_cmstate}
       return (Just names)
 
index 9227351..a8e232b 100644 (file)
@@ -28,6 +28,8 @@ module CmdLineOpts (
        opt_PprStyle_Debug,
 
        dopt,
+       dopt_set,
+       dopt_unset,
 
        -- other dynamic flags
        dopt_CoreToDo,
@@ -347,6 +349,12 @@ dopt_StgToDo = stgToDo
 dopt_OutName :: DynFlags -> String
 dopt_OutName = hscOutName
 
+dopt_set :: DynFlags -> DynFlag -> DynFlags
+dopt_set dfs f = dfs{ flags = f : flags dfs }
+
+dopt_unset :: DynFlags -> DynFlag -> DynFlags
+dopt_unset dfs f = dfs{ flags = filter (/= f) (flags dfs) }
+
 data HscLang
   = HscC
   | HscAsm
index d080ab7..b128364 100644 (file)
@@ -1,7 +1,7 @@
 {-# OPTIONS -#include "hschooks.h" #-}
 
 -----------------------------------------------------------------------------
--- $Id: DriverFlags.hs,v 1.49 2001/03/15 15:53:28 simonmar Exp $
+-- $Id: DriverFlags.hs,v 1.50 2001/03/27 16:55:03 simonmar Exp $
 --
 -- Driver flags
 --
@@ -318,8 +318,8 @@ getDynFlags = readIORef v_DynFlags
 dynFlag :: (DynFlags -> a) -> IO a
 dynFlag f = do dflags <- readIORef v_DynFlags; return (f dflags)
 
-setDynFlag f   = updDynFlags (\dfs -> dfs{ flags = f : flags dfs })
-unSetDynFlag f = updDynFlags (\dfs -> dfs{ flags = filter (/= f) (flags dfs) })
+setDynFlag f   = updDynFlags (\dfs -> dopt_set dfs f)
+unSetDynFlag f = updDynFlags (\dfs -> dopt_unset dfs f)
 
 addOpt_L     a = updDynFlags (\s -> s{opt_L =  a : opt_L s})
 addOpt_P     a = updDynFlags (\s -> s{opt_P =  a : opt_P s})