lib: add some strictness annotations to the parser
This was done to reverse minor performance regressions introduced in the previous commits
This commit is contained in:
parent
d79e707485
commit
c3f5659d75
@ -386,14 +386,14 @@ datep' mYear = do
|
||||
|
||||
case fromGregorianValid year month day of
|
||||
Nothing -> fail $ "well-formed but invalid date: " ++ dateStr
|
||||
Just date -> pure date
|
||||
Just date -> pure $! date
|
||||
|
||||
partialDate :: Maybe Year -> Integer -> Char -> Int -> TextParser m Day
|
||||
partialDate mYear month sep day = case mYear of
|
||||
Just year ->
|
||||
case fromGregorianValid year (fromIntegral month) day of
|
||||
Nothing -> fail $ "well-formed but invalid date: " ++ dateStr
|
||||
Just date -> pure date
|
||||
Just date -> pure $! date
|
||||
where dateStr = show year ++ [sep] ++ show month ++ [sep] ++ show day
|
||||
|
||||
Nothing -> fail $
|
||||
@ -446,7 +446,7 @@ modifiedaccountnamep = do
|
||||
parent <- getParentAccount
|
||||
aliases <- getAccountAliases
|
||||
a <- lift accountnamep
|
||||
return $
|
||||
return $!
|
||||
accountNameApplyAliases aliases $
|
||||
-- XXX accountNameApplyAliasesMemo ? doesn't seem to make a difference
|
||||
joinAccountNames parent
|
||||
@ -461,7 +461,7 @@ accountnamep :: TextParser m AccountName
|
||||
accountnamep = do
|
||||
firstPart <- part
|
||||
otherParts <- many $ try $ singleSpace *> part
|
||||
pure $ T.unwords $ firstPart : otherParts
|
||||
pure $! T.unwords $ firstPart : otherParts
|
||||
where
|
||||
part = takeWhile1P Nothing (not . isSpace)
|
||||
singleSpace = void spacenonewline *> notFollowedBy spacenonewline
|
||||
@ -822,8 +822,8 @@ isDigitSeparatorChar c = isDecimalPointChar c || c == ' '
|
||||
|
||||
|
||||
data DigitGrp = DigitGrp {
|
||||
digitGroupLength :: Int,
|
||||
digitGroupNumber :: Integer
|
||||
digitGroupLength :: !Int,
|
||||
digitGroupNumber :: !Integer
|
||||
} deriving (Eq)
|
||||
|
||||
instance Show DigitGrp where
|
||||
|
||||
Loading…
Reference in New Issue
Block a user