From 330c21659fef75f3f1fe6b3a3b52ab63f23dab61 Mon Sep 17 00:00:00 2001 From: Stephen Morgan Date: Mon, 16 Aug 2021 13:55:15 +1000 Subject: [PATCH] cln: hlint: Clean up Maybe related hlint warnings. --- .hlint.yaml | 4 ---- hledger-lib/Hledger/Data/Posting.hs | 7 +++---- hledger-lib/Hledger/Data/Valuation.hs | 3 +-- hledger-lib/Hledger/Read/JournalReader.hs | 6 +++--- hledger-web/Hledger/Web/Settings.hs | 5 ++--- hledger/Hledger/Cli/Commands/Close.hs | 4 ++-- hledger/Hledger/Cli/DocFiles.hs | 4 ++-- 7 files changed, 13 insertions(+), 20 deletions(-) diff --git a/.hlint.yaml b/.hlint.yaml index 5225cefff..8b692d4a4 100644 --- a/.hlint.yaml +++ b/.hlint.yaml @@ -24,15 +24,12 @@ - ignore: {name: "Use sortOn"} - ignore: {name: "Use camelCase"} - ignore: {name: "Use list comprehension"} -- ignore: {name: "Use isNothing"} - ignore: {name: "Redundant <$>"} - ignore: {name: "Use list literal pattern"} - ignore: {name: "Use fewer imports"} - ignore: {name: "Use intercalate"} - ignore: {name: "Use tuple-section"} - ignore: {name: "Use section"} -- ignore: {name: "Use maybe"} -- ignore: {name: "Replace case with maybe"} - ignore: {name: "Avoid lambda using `infix`"} - ignore: {name: "Functor law"} - ignore: {name: "Missing NOINLINE pragma"} @@ -42,7 +39,6 @@ - ignore: {name: "Use void"} - ignore: {name: "Use elemIndex"} - ignore: {name: "Use lambda-case"} -- ignore: {name: "Replace case with fromMaybe"} # Specify additional command line arguments diff --git a/hledger-lib/Hledger/Data/Posting.hs b/hledger-lib/Hledger/Data/Posting.hs index 257633dc9..441d1da19 100644 --- a/hledger-lib/Hledger/Data/Posting.hs +++ b/hledger-lib/Hledger/Data/Posting.hs @@ -226,10 +226,9 @@ postingDate2 p = fromMaybe nulldate $ asum dates -- the ambiguity, unmarked can mean "posting and transaction are both -- unmarked" or "posting is unmarked and don't know about the transaction". postingStatus :: Posting -> Status -postingStatus Posting{pstatus=s, ptransaction=mt} - | s == Unmarked = case mt of Just t -> tstatus t - Nothing -> Unmarked - | otherwise = s +postingStatus Posting{pstatus=s, ptransaction=mt} = case s of + Unmarked -> maybe Unmarked tstatus mt + _ -> s -- | Tags for this posting including any inherited from its parent transaction. postingAllTags :: Posting -> [Tag] diff --git a/hledger-lib/Hledger/Data/Valuation.hs b/hledger-lib/Hledger/Data/Valuation.hs index b56fdfc38..fdab3322b 100644 --- a/hledger-lib/Hledger/Data/Valuation.hs +++ b/hledger-lib/Hledger/Data/Valuation.hs @@ -46,7 +46,6 @@ import Hledger.Data.Types import Hledger.Data.Amount import Hledger.Data.Dates (nulldate) import Hledger.Data.Commodity (showCommoditySymbol) -import Data.Maybe (fromMaybe) import Text.Printf (printf) @@ -335,7 +334,7 @@ pricesShortestPath start end edges = extend (path,unusededges) = let pathnodes = start : map mpto path - pathend = fromMaybe start $ mpto <$> lastMay path + pathend = maybe start mpto $ lastMay path (nextedges,remainingedges) = partition ((==pathend).mpfrom) unusededges in [ (path', remainingedges') diff --git a/hledger-lib/Hledger/Read/JournalReader.hs b/hledger-lib/Hledger/Read/JournalReader.hs index 7fe2d8421..f5d647b2f 100644 --- a/hledger-lib/Hledger/Read/JournalReader.hs +++ b/hledger-lib/Hledger/Read/JournalReader.hs @@ -426,7 +426,7 @@ commoditydirectiveonelinep = do lift skipNonNewlineSpaces _ <- lift followingcommentp let comm = Commodity{csymbol=acommodity, cformat=Just $ dbg6 "style from commodity directive" astyle} - if asdecimalpoint astyle == Nothing + if isNothing $ asdecimalpoint astyle then customFailure $ parseErrorAt off pleaseincludedecimalpoint else modify' (\j -> j{jcommodities=M.insert acommodity comm $ jcommodities j}) @@ -467,7 +467,7 @@ formatdirectivep expectedsym = do _ <- lift followingcommentp if acommodity==expectedsym then - if asdecimalpoint astyle == Nothing + if isNothing $ asdecimalpoint astyle then customFailure $ parseErrorAt off pleaseincludedecimalpoint else return $ dbg6 "style from format subdirective" astyle else customFailure $ parseErrorAt off $ @@ -544,7 +544,7 @@ defaultcommoditydirectivep = do off <- getOffset Amount{acommodity,astyle} <- amountp lift restofline - if asdecimalpoint astyle == Nothing + if isNothing $ asdecimalpoint astyle then customFailure $ parseErrorAt off pleaseincludedecimalpoint else setDefaultCommodityAndStyle (acommodity, astyle) diff --git a/hledger-web/Hledger/Web/Settings.hs b/hledger-web/Hledger/Web/Settings.hs index e35795bd1..579d41f6e 100644 --- a/hledger-web/Hledger/Web/Settings.hs +++ b/hledger-web/Hledger/Web/Settings.hs @@ -10,6 +10,7 @@ module Hledger.Web.Settings where import Data.Default (def) +import Data.Maybe (fromMaybe) import Data.Text (Text) import Data.Yaml import Language.Haskell.TH.Syntax (Q, Exp) @@ -71,9 +72,7 @@ staticDir = "static" -- -- To see how this value is used, see urlRenderOverride in Foundation.hs staticRoot :: AppConfig DefaultEnv Extra -> Text -staticRoot conf = case extraStaticRoot $ appExtra conf of - Just root -> root - Nothing -> [st|#{appRoot conf}/static|] +staticRoot conf = fromMaybe [st|#{appRoot conf}/static|] . extraStaticRoot $ appExtra conf -- | Settings for 'widgetFile', such as which template languages to support and -- default Hamlet settings. diff --git a/hledger/Hledger/Cli/Commands/Close.hs b/hledger/Hledger/Cli/Commands/Close.hs index da36032f4..c1750e2a3 100755 --- a/hledger/Hledger/Cli/Commands/Close.hs +++ b/hledger/Hledger/Cli/Commands/Close.hs @@ -58,8 +58,8 @@ close CliOpts{rawopts_=rawopts, reportspec_=rspec} j = do (o, c) -> (o, c) -- descriptions to use for the closing/opening transactions - closingdesc = fromMaybe (T.pack defclosingdesc) $ T.pack <$> maybestringopt "close-desc" rawopts - openingdesc = fromMaybe (T.pack defopeningdesc) $ T.pack <$> maybestringopt "open-desc" rawopts + closingdesc = maybe (T.pack defclosingdesc) T.pack $ maybestringopt "close-desc" rawopts + openingdesc = maybe (T.pack defopeningdesc) T.pack $ maybestringopt "open-desc" rawopts -- accounts to close to and open from -- if only one is specified, it is used for both diff --git a/hledger/Hledger/Cli/DocFiles.hs b/hledger/Hledger/Cli/DocFiles.hs index fc0a51c6c..a31a404f8 100644 --- a/hledger/Hledger/Cli/DocFiles.hs +++ b/hledger/Hledger/Cli/DocFiles.hs @@ -24,6 +24,7 @@ import Prelude () import "base-compat-batteries" Prelude.Compat import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as BC +import Data.Maybe (fromMaybe, isNothing) import Data.String import System.IO import System.IO.Temp @@ -31,7 +32,6 @@ import System.Process import Hledger.Utils (first3, second3, third3, embedFileRelative) import Text.Printf (printf) -import Data.Maybe (fromMaybe) import System.Environment (lookupEnv) import Hledger.Utils.Debug @@ -108,7 +108,7 @@ runPagerForTopic tool mtopic = do let defpager = "less -is" envpager <- fromMaybe defpager <$> lookupEnv "PAGER" -- force the use of less if a topic is provided, since we know how to scroll it - let pager = if mtopic==Nothing then envpager else defpager + let pager = if isNothing mtopic then envpager else defpager callCommand $ dbg1 "pager command" $ pager ++ maybe "" (printf " +'/^( )?%s'") mtopic ++ " " ++ f