From 7f28d3dbe3033fb9471a8769a8340a9be0cf8e2e Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Sat, 22 Mar 2008 18:34:40 +0000 Subject: [PATCH] Added a warnPC function (like diePC) for use with formatCode --- common/Errors.hs | 7 ++++++- data/CompState.hs | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/common/Errors.hs b/common/Errors.hs index 55790e4..b011cba 100644 --- a/common/Errors.hs +++ b/common/Errors.hs @@ -17,7 +17,9 @@ with this program. If not, see . -} -- | Error handling and reporting. -module Errors (addPlainWarning, addWarning, checkJust, Die(..), dieInternal, dieIO, dieP, ErrorReport, showWarnings, Warn(..), WarningReport) where +module Errors (addPlainWarning, addWarning, checkJust, Die(..), + dieInternal, dieIO, dieP, ErrorReport, + showWarnings, Warn(..), WarningReport, warnP) where import Control.Monad.Error import Control.Monad.Trans @@ -45,6 +47,9 @@ type WarningReport = (Maybe Meta, String) class Monad m => Warn m where warnReport :: WarningReport -> m () +warnP :: Warn m => Meta -> String -> m () +warnP m s = warnReport (Just m,s) + --{{{ warnings -- | Add a warning with no source position. addPlainWarning :: Warn m => String -> m () diff --git a/data/CompState.hs b/data/CompState.hs index e74dda8..d14babd 100644 --- a/data/CompState.hs +++ b/data/CompState.hs @@ -31,7 +31,7 @@ import Data.Set (Set) import qualified Data.Set as Set import qualified AST as A -import Errors (Die, dieP, ErrorReport) +import Errors (Die, dieP, ErrorReport, Warn, warnP) import Metadata -- | Modes that Tock can run in. @@ -301,6 +301,9 @@ makeNonceVariable s m t nt am diePC :: (CSMR m, Die m) => Meta -> m String -> m a diePC m str = str >>= (dieP m) +warnPC :: (CSMR m, Warn m) => Meta -> m String -> m () +warnPC m str = str >>= (warnP m) + --dieC :: (CSM m, Die m) => m String -> m a --dieC str = str >>= die