X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcRnMonad.lhs;h=d9c41c00b328be6c407745f97b36303aaaf9d9f4;hb=1f4bc1f36380776c68431dbc3b5fa41dd6d2182e;hp=06f08a3601a189612b232f58e57341b1f4ab96b0;hpb=27286cf2ce6733cbbf008972c6bea30ea2e562ee;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcRnMonad.lhs b/compiler/typecheck/TcRnMonad.lhs index 06f08a3..d9c41c0 100644 --- a/compiler/typecheck/TcRnMonad.lhs +++ b/compiler/typecheck/TcRnMonad.lhs @@ -233,11 +233,13 @@ getDOpts = do { env <- getTopEnv; return (hsc_dflags env) } doptM :: DOpt d => d -> TcRnIf gbl lcl Bool doptM flag = do { dflags <- getDOpts; return (dopt flag dflags) } -setOptM :: DOpt d => d -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a +-- XXX setOptM and unsetOptM operate on different types. One should be renamed. + +setOptM :: LanguageFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a setOptM flag = updEnv (\ env@(Env { env_top = top }) -> - env { env_top = top { hsc_dflags = dopt_set (hsc_dflags top) flag}} ) + env { env_top = top { hsc_dflags = lopt_set_flattened (hsc_dflags top) flag}} ) -unsetOptM :: DOpt d => d -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a +unsetOptM :: DynFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a unsetOptM flag = updEnv (\ env@(Env { env_top = top }) -> env { env_top = top { hsc_dflags = dopt_unset (hsc_dflags top) flag}} )