Commit d49e38db authored by Ian Lynagh's avatar Ian Lynagh

Make a proper Opt_WarnLazyUnliftedBindings warning, with a flag etc

parent db61aebd
......@@ -191,6 +191,7 @@ data DynFlag
| Opt_WarnTabs
| Opt_WarnUnrecognisedPragmas
| Opt_WarnDodgyForeignImports
| Opt_WarnLazyUnliftedBindings
-- language opts
| Opt_OverlappingInstances
......@@ -906,6 +907,7 @@ standardWarnings
Opt_WarnMissingFields,
Opt_WarnMissingMethods,
Opt_WarnDuplicateExports,
Opt_WarnLazyUnliftedBindings,
Opt_WarnDodgyForeignImports
]
......@@ -1659,6 +1661,8 @@ fFlags = [
( "warn-orphans", Opt_WarnOrphans, const Supported ),
( "warn-tabs", Opt_WarnTabs, const Supported ),
( "warn-unrecognised-pragmas", Opt_WarnUnrecognisedPragmas, const Supported ),
( "warn-lazy-unlifted-bindings", Opt_WarnLazyUnliftedBindings,
const $ Deprecated "lazy unlifted bindings will be an error in GHC 6.14, and this flag will no longer exist"),
( "print-explicit-foralls", Opt_PrintExplicitForalls, const Supported ),
( "strictness", Opt_Strictness, const Supported ),
( "static-argument-transformation", Opt_StaticArgumentTransformation, const Supported ),
......
......@@ -478,7 +478,8 @@ checkStrictBinds top_lvl rec_group mbind mono_tys infos
-- This should be a checkTc, not a warnTc, but as of GHC 6.11
-- the versions of alex and happy available have non-conforming
-- templates, so the GHC build fails if it's an error:
; warnTc (not bang_pat)
; warnUnlifted <- doptM Opt_WarnLazyUnliftedBindings
; warnTc (warnUnlifted && not bang_pat)
(unliftedMustBeBang mbind)
; mapM_ check_sig infos
; return True }
......@@ -495,6 +496,7 @@ unliftedMustBeBang :: LHsBindsLR Var Var -> SDoc
unliftedMustBeBang mbind
= hang (text "Bindings containing unlifted types must use an outermost bang pattern:")
4 (pprLHsBinds mbind)
$$ text "*** This will be an error in GHC 6.14! Fix your code now!"
strictBindErr :: String -> Bool -> LHsBindsLR Var Var -> SDoc
strictBindErr flavour unlifted mbind
......
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