diff options
Diffstat (limited to 'src/google/protobuf/util/type_resolver_util.cc')
-rw-r--r-- | src/google/protobuf/util/type_resolver_util.cc | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/google/protobuf/util/type_resolver_util.cc b/src/google/protobuf/util/type_resolver_util.cc index febaa41f..aa48ef60 100644 --- a/src/google/protobuf/util/type_resolver_util.cc +++ b/src/google/protobuf/util/type_resolver_util.cc @@ -60,7 +60,7 @@ class DescriptorPoolTypeResolver : public TypeResolver { const DescriptorPool* pool) : url_prefix_(url_prefix), pool_(pool) {} - Status ResolveMessageType(const string& type_url, Type* type) { + Status ResolveMessageType(const string& type_url, Type* type) override { string type_name; Status status = ParseTypeUrl(type_url, &type_name); if (!status.ok()) { @@ -75,7 +75,7 @@ class DescriptorPoolTypeResolver : public TypeResolver { return Status(); } - Status ResolveEnumType(const string& type_url, Enum* enum_type) { + Status ResolveEnumType(const string& type_url, Enum* enum_type) override { string type_name; Status status = ParseTypeUrl(type_url, &type_name); if (!status.ok()) { @@ -95,11 +95,6 @@ class DescriptorPoolTypeResolver : public TypeResolver { type->Clear(); type->set_name(descriptor->full_name()); for (int i = 0; i < descriptor->field_count(); ++i) { - const FieldDescriptor* field = descriptor->field(i); - if (field->type() == FieldDescriptor::TYPE_GROUP) { - // Group fields cannot be represented with Type. We discard them. - continue; - } ConvertFieldDescriptor(descriptor->field(i), type->add_fields()); } for (int i = 0; i < descriptor->oneof_decl_count(); ++i) { @@ -141,7 +136,8 @@ class DescriptorPoolTypeResolver : public TypeResolver { if (descriptor->has_default_value()) { field->set_default_value(DefaultValueAsString(descriptor)); } - if (descriptor->type() == FieldDescriptor::TYPE_MESSAGE) { + if (descriptor->type() == FieldDescriptor::TYPE_MESSAGE || + descriptor->type() == FieldDescriptor::TYPE_GROUP) { field->set_type_url(GetTypeUrl(descriptor->message_type())); } else if (descriptor->type() == FieldDescriptor::TYPE_ENUM) { field->set_type_url(GetTypeUrl(descriptor->enum_type())); |