internal/impl: fix Has for proto3 scalars
The definition of Has for proto3 scalars is whether the value is non-zero.
Change-Id: I6aee92dd518d63a66515ad35da84b2be7aa22527
Reviewed-on: https://go-review.googlesource.com/c/150320
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/internal/impl/message_field.go b/internal/impl/message_field.go
index ea1c1eb..2686a97 100644
--- a/internal/impl/message_field.go
+++ b/internal/impl/message_field.go
@@ -192,11 +192,11 @@
case reflect.Bool:
return rv.Bool()
case reflect.Int32, reflect.Int64:
- return rv.Int() > 0
+ return rv.Int() != 0
case reflect.Uint32, reflect.Uint64:
- return rv.Uint() > 0
+ return rv.Uint() != 0
case reflect.Float32, reflect.Float64:
- return rv.Float() > 0
+ return rv.Float() != 0
case reflect.String, reflect.Slice:
return rv.Len() > 0
default: