all: use typed variant of protoreflect.ValueOf
Change-Id: I7479632b57e7c8efade12a2eb2b855e9c321adb1
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/196037
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/internal/impl/convert.go b/internal/impl/convert.go
index 67cd7f8..5fdb022 100644
--- a/internal/impl/convert.go
+++ b/internal/impl/convert.go
@@ -76,15 +76,15 @@
)
var (
- boolZero = pref.ValueOf(bool(false))
- int32Zero = pref.ValueOf(int32(0))
- int64Zero = pref.ValueOf(int64(0))
- uint32Zero = pref.ValueOf(uint32(0))
- uint64Zero = pref.ValueOf(uint64(0))
- float32Zero = pref.ValueOf(float32(0))
- float64Zero = pref.ValueOf(float64(0))
- stringZero = pref.ValueOf(string(""))
- bytesZero = pref.ValueOf([]byte(nil))
+ boolZero = pref.ValueOfBool(false)
+ int32Zero = pref.ValueOfInt32(0)
+ int64Zero = pref.ValueOfInt64(0)
+ uint32Zero = pref.ValueOfUint32(0)
+ uint64Zero = pref.ValueOfUint64(0)
+ float32Zero = pref.ValueOfFloat32(0)
+ float64Zero = pref.ValueOfFloat64(0)
+ stringZero = pref.ValueOfString("")
+ bytesZero = pref.ValueOfBytes(nil)
)
func newSingularConverter(t reflect.Type, fd pref.FieldDescriptor) Converter {
@@ -376,7 +376,7 @@
func newEnumConverter(goType reflect.Type, fd pref.FieldDescriptor) Converter {
var def pref.Value
if fd.Cardinality() == pref.Repeated {
- def = pref.ValueOf(fd.Enum().Values().Get(0).Number())
+ def = pref.ValueOfEnum(fd.Enum().Values().Get(0).Number())
} else {
def = fd.Default()
}
@@ -387,7 +387,7 @@
if v.Type() != c.goType {
panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
}
- return pref.ValueOf(pref.EnumNumber(v.Int()))
+ return pref.ValueOfEnum(pref.EnumNumber(v.Int()))
}
func (c *enumConverter) GoValueOf(v pref.Value) reflect.Value {
@@ -424,9 +424,9 @@
panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
}
if m, ok := v.Interface().(pref.ProtoMessage); ok {
- return pref.ValueOf(m.ProtoReflect())
+ return pref.ValueOfMessage(m.ProtoReflect())
}
- return pref.ValueOf(legacyWrapMessage(v).ProtoReflect())
+ return pref.ValueOfMessage(legacyWrapMessage(v).ProtoReflect())
}
func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value {
diff --git a/internal/impl/convert_list.go b/internal/impl/convert_list.go
index 222f1a4..d17676b 100644
--- a/internal/impl/convert_list.go
+++ b/internal/impl/convert_list.go
@@ -32,7 +32,7 @@
}
pv := reflect.New(c.goType)
pv.Elem().Set(v)
- return pref.ValueOf(&listReflect{pv, c.c})
+ return pref.ValueOfList(&listReflect{pv, c.c})
}
func (c *listConverter) GoValueOf(v pref.Value) reflect.Value {
@@ -56,11 +56,11 @@
}
func (c *listConverter) New() pref.Value {
- return pref.ValueOf(&listReflect{reflect.New(c.goType), c.c})
+ return pref.ValueOfList(&listReflect{reflect.New(c.goType), c.c})
}
func (c *listConverter) Zero() pref.Value {
- return pref.ValueOf(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c})
+ return pref.ValueOfList(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c})
}
type listPtrConverter struct {
@@ -72,7 +72,7 @@
if v.Type() != c.goType {
panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
}
- return pref.ValueOf(&listReflect{v, c.c})
+ return pref.ValueOfList(&listReflect{v, c.c})
}
func (c *listPtrConverter) GoValueOf(v pref.Value) reflect.Value {
diff --git a/internal/impl/convert_map.go b/internal/impl/convert_map.go
index 47b5f22..2ddfc78 100644
--- a/internal/impl/convert_map.go
+++ b/internal/impl/convert_map.go
@@ -31,7 +31,7 @@
if v.Type() != c.goType {
panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType))
}
- return pref.ValueOf(&mapReflect{v, c.keyConv, c.valConv})
+ return pref.ValueOfMap(&mapReflect{v, c.keyConv, c.valConv})
}
func (c *mapConverter) GoValueOf(v pref.Value) reflect.Value {
diff --git a/internal/impl/legacy_message.go b/internal/impl/legacy_message.go
index 6c52284..de03ee6 100644
--- a/internal/impl/legacy_message.go
+++ b/internal/impl/legacy_message.go
@@ -236,10 +236,10 @@
fd.L1.Options = func() pref.ProtoMessage {
opts := descopts.Field.ProtoReflect().New()
if fd.L1.IsWeak {
- opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOf(true))
+ opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true))
}
if fd.L1.HasPacked {
- opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOf(fd.L1.IsPacked))
+ opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.IsPacked))
}
return opts.Interface()
}
@@ -273,7 +273,7 @@
md2.L2.IsMapEntry = true
md2.L2.Options = func() pref.ProtoMessage {
opts := descopts.Message.ProtoReflect().New()
- opts.Set(opts.Descriptor().Fields().ByName("map_entry"), protoreflect.ValueOf(true))
+ opts.Set(opts.Descriptor().Fields().ByName("map_entry"), protoreflect.ValueOfBool(true))
return opts.Interface()
}
diff --git a/internal/impl/message_reflect_field.go b/internal/impl/message_reflect_field.go
index e55b6de..e384aa3 100644
--- a/internal/impl/message_reflect_field.go
+++ b/internal/impl/message_reflect_field.go
@@ -99,7 +99,7 @@
}
rv = rv.Elem().Elem().Field(0)
if rv.IsNil() {
- rv.Set(conv.GoValueOf(pref.ValueOf(conv.New().Message())))
+ rv.Set(conv.GoValueOf(pref.ValueOfMessage(conv.New().Message())))
}
return conv.PBValueOf(rv)
},
@@ -324,14 +324,14 @@
get: func(p pointer) pref.Value {
lazyInit()
if p.IsNil() {
- return pref.ValueOf(messageType.Zero())
+ return pref.ValueOfMessage(messageType.Zero())
}
fs := p.Apply(weakOffset).WeakFields()
m, ok := (*fs)[num]
if !ok {
- return pref.ValueOf(messageType.Zero())
+ return pref.ValueOfMessage(messageType.Zero())
}
- return pref.ValueOf(m.(pref.ProtoMessage).ProtoReflect())
+ return pref.ValueOfMessage(m.(pref.ProtoMessage).ProtoReflect())
},
set: func(p pointer, v pref.Value) {
lazyInit()
@@ -356,7 +356,7 @@
m = messageType.New().Interface().(piface.MessageV1)
(*fs)[num] = m
}
- return pref.ValueOf(m.(pref.ProtoMessage).ProtoReflect())
+ return pref.ValueOfMessage(m.(pref.ProtoMessage).ProtoReflect())
},
newMessage: func() pref.Message {
lazyInit()
@@ -364,7 +364,7 @@
},
newField: func() pref.Value {
lazyInit()
- return pref.ValueOf(messageType.New())
+ return pref.ValueOfMessage(messageType.New())
},
}
}