protobuf-go/proto
Damien Neil f1e905b042 all: unify protoV1.ExtensionDesc and proto.ExtensionType
Change protoV1.ExtensionDesc to directly implement ExtensionType
rather than delegating to one.

Unify the previous types protoiface.ExtensionDescV1 and
filetype.Extension in impl.ExtensionInfo. The protoV1.ExtensionDesc
type becomes an alias to ExtensionInfo.

This gives us:

  - Just one implementation of ExtensionType.
  - Generated foopb.E_Ext vars are canonical ExtensionTypes.
  - Generated foopb.E_Ext vars are also v1.ExtensionDescs for backwards
    compatibility.
  - Conversion between legacy and modern representations happens
    transparently when lazily initializing an ExtensionInfo.

Overall, a simplification for users of generated code, since they can
mostly ignore the ExtensionDesc/ExtentionType distinction and use the
same value in either the old or new API.

This is change 3/5 in a series of commits changing protoV1.ExtensionDesc
to directly implement protoreflect.ExtensionType.

1. [v2] Add protoimpl.ExtensionInfo as an alias for
   protoiface.ExtensionDescV1.

2. [v1] Update references to protoimpl.ExtensionInfo to use
   protoiface.ExtensionInfo.

3. [v2] Create protoimpl.ExtensionInfo (an alias to a new type in
   the impl package) and remove protoiface.ExtensionDescV1.

4. [v1] Remove unneeded explicit conversions between ExtensionDesc and
   ExtensionType (since the former now directly implements the latter).

5. [v2] Remove stub conversion functions.

Change-Id: I96ee890541ec11b2412e1a72c9d7b96e4d7f66b4
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/189563
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
2019-08-20 21:32:57 +00:00
..
bench_test.go proto: bench_test fixes 2019-07-09 19:32:32 +00:00
decode_gen.go all: support enforce_utf8 override 2019-07-15 19:53:05 +00:00
decode_test.go all: unify protoV1.ExtensionDesc and proto.ExtensionType 2019-08-20 21:32:57 +00:00
decode.go all: refactor extensions, add proto.GetExtension etc. 2019-08-08 18:20:51 +00:00
doc.go proto, internal/impl: make IsInitialized more consistent 2019-07-09 19:49:22 +00:00
encode_gen.go all: support enforce_utf8 override 2019-07-15 19:53:05 +00:00
encode_test.go internal/impl: treat a nil oneof wrapper as if it were unset 2019-08-16 00:24:53 +00:00
encode.go proto: support message_set_wire_format 2019-07-15 19:32:30 +00:00
equal_test.go proto: equate floating-point NaNs 2019-07-15 21:36:38 +00:00
equal.go proto: equate floating-point NaNs 2019-07-15 21:36:38 +00:00
extension_test.go all: refactor extensions, add proto.GetExtension etc. 2019-08-08 18:20:51 +00:00
extension.go all: refactor extensions, add proto.GetExtension etc. 2019-08-08 18:20:51 +00:00
isinit_test.go proto: move T->*T wrappers from internal/scalar to proto 2019-07-12 17:35:01 +00:00
isinit.go runtime/protoiface: move and rename XXX_Methods 2019-07-12 19:31:58 +00:00
merge_test.go all: unify protoV1.ExtensionDesc and proto.ExtensionType 2019-08-20 21:32:57 +00:00
merge.go
messageset_test.go all: rename tag and flags for legacy support 2019-08-08 20:49:00 +00:00
messageset.go all: rename tag and flags for legacy support 2019-08-08 20:49:00 +00:00
proto_methods.go runtime/protoiface: move and rename XXX_Methods 2019-07-12 19:31:58 +00:00
proto_reflect.go runtime/protoiface: move and rename XXX_Methods 2019-07-12 19:31:58 +00:00
proto.go all: remove dead code 2019-08-06 21:16:48 +00:00
reset_test.go internal/impl: treat a nil oneof wrapper as if it were unset 2019-08-16 00:24:53 +00:00
reset.go
size_gen.go
size.go proto: support message_set_wire_format 2019-07-15 19:32:30 +00:00
wrappers.go proto: move T->*T wrappers from internal/scalar to proto 2019-07-12 17:35:01 +00:00