Fix diffs for assert and (#1266)

... as caught by @sjakobi in https://github.com/dhall-lang/dhall-haskell/issues/1256#issuecomment-526829515
This commit is contained in:
Gabriel Gonzalez 2019-09-05 00:28:57 -05:00 committed by mergify[bot]
parent 96921f03ab
commit 141bd8d6f4
2 changed files with 29 additions and 2 deletions

View File

@ -698,6 +698,15 @@ diff l@(Pi {}) r =
mismatch l r
diff l r@(Pi {}) =
mismatch l r
diff (Assert aL) (Assert aR) =
align
( " " <> keyword "assert"
<> hardline <> colon <> " " <> diff aL aR
)
diff l@(Assert {}) r =
mismatch l r
diff l r@(Assert {}) =
mismatch l r
diff l r =
diffAnnotatedExpression l r
@ -905,14 +914,30 @@ diffNotEqualExpression l@(BoolNE {}) r@(BoolNE {}) =
enclosed' " " (operator "!=" <> " ") (docs l r)
where
docs (BoolNE aL bL) (BoolNE aR bR) =
Data.List.NonEmpty.cons (diffApplicationExpression aL aR) (docs bL bR)
Data.List.NonEmpty.cons (diffEquivalentExpression aL aR) (docs bL bR)
docs aL aR =
pure (diffApplicationExpression aL aR)
pure (diffEquivalentExpression aL aR)
diffNotEqualExpression l@(BoolNE {}) r =
mismatch l r
diffNotEqualExpression l r@(BoolNE {}) =
mismatch l r
diffNotEqualExpression l r =
diffEquivalentExpression l r
diffEquivalentExpression
:: (Eq a, Pretty a) => Expr Void a -> Expr Void a -> Diff
diffEquivalentExpression l@(Equivalent {}) r@(Equivalent {}) =
enclosed' " " (operator "" <> " ") (docs l r)
where
docs (Equivalent aL bL) (Equivalent aR bR) =
Data.List.NonEmpty.cons (diffApplicationExpression aL aR) (docs bL bR)
docs aL aR =
pure (diffApplicationExpression aL aR)
diffEquivalentExpression l@(Equivalent {}) r =
mismatch l r
diffEquivalentExpression l r@(Equivalent {}) =
mismatch l r
diffEquivalentExpression l r =
diffApplicationExpression l r
diffApplicationExpression :: (Eq a, Pretty a) => Expr Void a -> Expr Void a -> Diff

View File

@ -242,6 +242,8 @@ instance (Arbitrary s, Arbitrary a) => Arbitrary (Expr s a) where
, ( 1, lift2 ToMap)
, ( 7, lift2 Field)
, ( 7, lift2 Project)
, ( 1, lift1 Assert)
, ( 1, lift2 Equivalent)
, ( 7, lift1 Embed)
]
)