Balance assertion errors now show line of failed assertion posting. Fixes #481.
This commit is contained in:
parent
e33cce52bc
commit
11684843a0
@ -535,7 +535,9 @@ checkBalanceAssertion p@Posting{ pbalanceassertion = Just ass} amt
|
|||||||
(case ptransaction p of
|
(case ptransaction p of
|
||||||
Nothing -> ":" -- shouldn't happen
|
Nothing -> ":" -- shouldn't happen
|
||||||
Just t -> printf " in %s:\nin transaction:\n%s"
|
Just t -> printf " in %s:\nin transaction:\n%s"
|
||||||
(showGenericSourcePos $ tsourcepos t) (chomp $ show t) :: String)
|
(showGenericSourcePos postingPos) (chomp $ show t) :: String
|
||||||
|
where postingLine = fromJust $ elemIndex p $ tpostings t -- assume postings are in order
|
||||||
|
postingPos = increaseSourceLine (1+postingLine) (tsourcepos t))
|
||||||
(showPostingLine p)
|
(showPostingLine p)
|
||||||
(showDate $ postingDate p)
|
(showDate $ postingDate p)
|
||||||
(T.unpack $ paccount p) -- XXX pack
|
(T.unpack $ paccount p) -- XXX pack
|
||||||
|
|||||||
@ -42,6 +42,7 @@ module Hledger.Data.Transaction (
|
|||||||
sourceFilePath,
|
sourceFilePath,
|
||||||
sourceFirstLine,
|
sourceFirstLine,
|
||||||
showGenericSourcePos,
|
showGenericSourcePos,
|
||||||
|
increaseSourceLine,
|
||||||
-- * misc.
|
-- * misc.
|
||||||
tests_Hledger_Data_Transaction
|
tests_Hledger_Data_Transaction
|
||||||
)
|
)
|
||||||
@ -81,6 +82,10 @@ sourceFirstLine = \case
|
|||||||
GenericSourcePos _ line _ -> line
|
GenericSourcePos _ line _ -> line
|
||||||
JournalSourcePos _ (line, _) -> line
|
JournalSourcePos _ (line, _) -> line
|
||||||
|
|
||||||
|
increaseSourceLine :: Int -> GenericSourcePos -> GenericSourcePos
|
||||||
|
increaseSourceLine val (GenericSourcePos fp line col) = GenericSourcePos fp (line+val) col
|
||||||
|
increaseSourceLine val (JournalSourcePos fp (first, _)) = GenericSourcePos fp (first+val) 0
|
||||||
|
|
||||||
showGenericSourcePos :: GenericSourcePos -> String
|
showGenericSourcePos :: GenericSourcePos -> String
|
||||||
showGenericSourcePos = \case
|
showGenericSourcePos = \case
|
||||||
GenericSourcePos fp line column -> show fp ++ " (line " ++ show line ++ ", column " ++ show column ++ ")"
|
GenericSourcePos fp line column -> show fp ++ " (line " ++ show line ++ ", column " ++ show column ++ ")"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user