protobuf-go/reflect/protoreflect
Damien Neil c600d6c086 all: do best-effort initialization check on fast path unmarshal
Add a fast check for required fields to the fast path unmarshal.
This is best-effort and will fail to detect some initialized
messages: Messages with more than 64 required fields, messages
split across multiple tags, possibly other cases.

In the cases where it works (which is most of them in practice),
this permits us to skip the IsInitialized check.

Change-Id: I6b70953a333033a5e64fb7ca37a59786cb0f75a0
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/215878
Reviewed-by: Joe Tsai <joetsai@google.com>
2020-01-22 20:57:14 +00:00
..
methods.go all: do best-effort initialization check on fast path unmarshal 2020-01-22 20:57:14 +00:00
proto_test.go reflect/protoreflect: initial commit 2018-08-10 19:59:50 +00:00
proto.go reflect/protoreflect: emit valid Go from GoString 2019-09-05 21:59:19 +00:00
source.go reflect/protoreflect: add FileDescriptor.SourceLocations 2019-07-13 00:15:59 +00:00
type.go reflect/protoreflect: add {Message,List,Map}.IsValid 2019-11-26 22:56:18 +00:00
value_pure.go all: change module to google.golang.org/protobuf 2019-05-14 17:28:29 +00:00
value_test.go all: rename Vector as List 2018-11-14 23:03:53 +00:00
value_union.go reflect/protoreflect: add non-allocating Value constructors 2019-08-26 17:48:05 +00:00
value_unsafe.go all: change module to google.golang.org/protobuf 2019-05-14 17:28:29 +00:00
value.go all: add ProtoMethods method to protoreflect.Message 2020-01-21 21:05:54 +00:00