internal/core/adt: fix null values equality
`Value.Equals()` should return true when comparing two `null`
values.
Change-Id: I5dd8c0a84061374a354f15dc514d9a604ebb5f28
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/9401
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/internal/core/adt/equality.go b/internal/core/adt/equality.go
index 8203cfc..cb1d338 100644
--- a/internal/core/adt/equality.go
+++ b/internal/core/adt/equality.go
@@ -139,7 +139,7 @@
}
switch x := v.(type) {
- case *Num, *String, *Bool, *Bytes:
+ case *Num, *String, *Bool, *Bytes, *Null:
if b, ok := BinOp(ctx, EqualOp, v, w).(*Bool); ok {
return b.B
}
diff --git a/internal/diff/diff_test.go b/internal/diff/diff_test.go
index 1eb31a3..bde937a 100644
--- a/internal/diff/diff_test.go
+++ b/internal/diff/diff_test.go
@@ -71,6 +71,7 @@
b: 2
s: 4
d: 1
+ e: null
}
`,
y: `
@@ -79,6 +80,7 @@
c: 3
s: 4
d: int
+ e: null
}
`,
kind: Modified,
@@ -90,6 +92,7 @@
s: 4
- d: 1
+ d: int
+ e: null
}
`,
}, {