proto: allow text proto map keys to be omitted or order swapped
diff --git a/proto/equal.go b/proto/equal.go
index cafb99f..8b16f95 100644
--- a/proto/equal.go
+++ b/proto/equal.go
@@ -191,6 +191,13 @@
}
return true
case reflect.Ptr:
+ // Maps may have nil values in them, so check for nil.
+ if v1.IsNil() && v2.IsNil() {
+ return true
+ }
+ if v1.IsNil() != v2.IsNil() {
+ return false
+ }
return equalAny(v1.Elem(), v2.Elem(), prop)
case reflect.Slice:
if v1.Type().Elem().Kind() == reflect.Uint8 {