diff --git a/hledger-lib/Hledger/Data/Posting.hs b/hledger-lib/Hledger/Data/Posting.hs index d69fad04d..d603e2ac9 100644 --- a/hledger-lib/Hledger/Data/Posting.hs +++ b/hledger-lib/Hledger/Data/Posting.hs @@ -37,6 +37,7 @@ module Hledger.Data.Posting ( joinAccountNames, concatAccountNames, accountNameApplyAliases, + accountNameApplyAliasesMemo, -- * arithmetic sumPostings, -- * rendering @@ -231,6 +232,10 @@ accountNameApplyAliases aliases a = accountNameWithPostingType atype aname' aname aliases +-- | Memoising version of accountNameApplyAliases, maybe overkill. +accountNameApplyAliasesMemo :: [AccountAlias] -> AccountName -> AccountName +accountNameApplyAliasesMemo aliases = memo (accountNameApplyAliases aliases) + -- aliasMatches :: AccountAlias -> AccountName -> Bool -- aliasMatches (BasicAlias old _) a = old `isAccountNamePrefixOf` a -- aliasMatches (RegexAlias re _) a = regexMatchesCI re a diff --git a/hledger-lib/Hledger/Read/JournalReader.hs b/hledger-lib/Hledger/Read/JournalReader.hs index 76c1b1663..a00d51839 100644 --- a/hledger-lib/Hledger/Read/JournalReader.hs +++ b/hledger-lib/Hledger/Read/JournalReader.hs @@ -664,6 +664,7 @@ modifiedaccountnamep = do a <- accountnamep return $ accountNameApplyAliases aliases $ + -- XXX accountNameApplyAliasesMemo ? doesn't seem to make a difference joinAccountNames parent a