internal/impl: support non-struct-pointer legacy message types
Support, to some limited degree, types which implement protoV1.Message
but which are not struct pointers. Our ability to work with these types
is largely limited to calling Marshal or Unmarshal methods, when
present.
Change-Id: Ie1b851d9e753e2b2cb189b17ffeefebe2d8b3a8f
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/198237
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/internal/testprotos/irregular/test.proto b/internal/testprotos/irregular/test.proto
index 16ad47c..e6eb9bf 100644
--- a/internal/testprotos/irregular/test.proto
+++ b/internal/testprotos/irregular/test.proto
@@ -21,5 +21,11 @@
map<string,IrregularMessage> map_message = 4;
oneof union {
IrregularMessage oneof_message = 5;
+ AberrantMessage oneof_aberrant_message = 6;
}
+
+ optional AberrantMessage optional_aberrant_message = 7;
+ repeated AberrantMessage repeated_aberrant_message = 8;
+ required AberrantMessage required_aberrant_message = 9;
+ map<string,AberrantMessage> map_aberrant_message = 10;
}