@@ -17,6 +17,7 @@ module Dhall.Diff (
17
17
, diff
18
18
) where
19
19
20
+ import Data.ByteString (ByteString )
20
21
import Data.Foldable (fold , toList )
21
22
import Data.List.NonEmpty (NonEmpty (.. ))
22
23
import Data.Monoid (Any (.. ))
@@ -40,16 +41,16 @@ import Dhall.Syntax
40
41
import Numeric.Natural (Natural )
41
42
import Prettyprinter (Doc , Pretty )
42
43
43
- import qualified Data.Algorithm.Diff as Algo.Diff
44
+ import qualified Data.Algorithm.Diff as Algo.Diff
44
45
import qualified Data.List.NonEmpty
45
46
import qualified Data.Set
46
47
import qualified Data.Text
47
- import qualified Data.Time as Time
48
+ import qualified Data.Time as Time
48
49
import qualified Dhall.Map
49
- import qualified Dhall.Normalize as Normalize
50
- import qualified Dhall.Pretty.Internal as Internal
51
- import qualified Dhall.Syntax as Syntax
52
- import qualified Prettyprinter as Pretty
50
+ import qualified Dhall.Normalize as Normalize
51
+ import qualified Dhall.Pretty.Internal as Internal
52
+ import qualified Dhall.Syntax as Syntax
53
+ import qualified Prettyprinter as Pretty
53
54
54
55
{-| This type is a `Doc` enriched with a `same` flag to efficiently track if
55
56
any difference was detected
@@ -383,6 +384,10 @@ diffChunks cL cR
383
384
(Right x, Right y) -> diff x y
384
385
_ -> diffTextSkeleton
385
386
387
+ diffBytes :: ByteString -> ByteString -> Diff
388
+ diffBytes l r =
389
+ " 0x" <> diffText (Internal. prettyBase16 l) (Internal. prettyBase16 r)
390
+
386
391
diffList
387
392
:: (Eq a , Pretty a )
388
393
=> Seq (Expr Void a ) -> Seq (Expr Void a ) -> Diff
@@ -532,6 +537,10 @@ skeleton (BoolIf {}) =
532
537
<> keyword " else"
533
538
<> " "
534
539
<> ignore
540
+ skeleton (BytesLit {}) =
541
+ " 0x\" "
542
+ <> ignore
543
+ <> " \" "
535
544
skeleton (NaturalPlus {}) =
536
545
ignore
537
546
<> " "
@@ -1169,6 +1178,18 @@ diffPrimitiveExpression l@Bool r =
1169
1178
mismatch l r
1170
1179
diffPrimitiveExpression l r@ Bool =
1171
1180
mismatch l r
1181
+ diffPrimitiveExpression Bytes Bytes =
1182
+ " …"
1183
+ diffPrimitiveExpression l@ Bytes r =
1184
+ mismatch l r
1185
+ diffPrimitiveExpression l r@ Bytes =
1186
+ mismatch l r
1187
+ diffPrimitiveExpression (BytesLit l) (BytesLit r) =
1188
+ diffBytes l r
1189
+ diffPrimitiveExpression l@ (BytesLit {}) r =
1190
+ mismatch l r
1191
+ diffPrimitiveExpression l r@ (BytesLit {}) =
1192
+ mismatch l r
1172
1193
diffPrimitiveExpression Natural Natural =
1173
1194
" …"
1174
1195
diffPrimitiveExpression l@ Natural r =
0 commit comments