From 38d8d3948a2bd83f36d85fb67e1d3c621c5db571 Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Tue, 30 Jun 2015 18:43:57 +0100 Subject: Remove unused code in C# codegen --- .../protobuf/compiler/csharp/csharp_helpers.cc | 42 +--------------------- .../protobuf/compiler/csharp/csharp_helpers.h | 6 ---- 2 files changed, 1 insertion(+), 47 deletions(-) diff --git a/src/google/protobuf/compiler/csharp/csharp_helpers.cc b/src/google/protobuf/compiler/csharp/csharp_helpers.cc index 156ee328..da6a7633 100644 --- a/src/google/protobuf/compiler/csharp/csharp_helpers.cc +++ b/src/google/protobuf/compiler/csharp/csharp_helpers.cc @@ -391,47 +391,7 @@ FieldGeneratorBase* CreateFieldGenerator(const FieldDescriptor* descriptor, } } -bool HasRequiredFields(const Descriptor* descriptor, std::set* already_seen) { - if (already_seen->find(descriptor) != already_seen->end()) { - // The type is already in cache. This means that either: - // a. The type has no required fields. - // b. We are in the midst of checking if the type has required fields, - // somewhere up the stack. In this case, we know that if the type - // has any required fields, they'll be found when we return to it, - // and the whole call to HasRequiredFields() will return true. - // Therefore, we don't have to check if this type has required fields - // here. - return false; - } - already_seen->insert(descriptor); - - // If the type has extensions, an extension with message type could contain - // required fields, so we have to be conservative and assume such an - // extension exists. - if (descriptor->extension_count() > 0) { - return true; - } - - for (int i = 0; i < descriptor->field_count(); i++) { - const FieldDescriptor* field = descriptor->field(i); - if (field->is_required()) { - return true; - } - if (GetCSharpType(field->type()) == CSHARPTYPE_MESSAGE) { - if (HasRequiredFields(field->message_type(), already_seen)) { - return true; - } - } - } - return false; -} - -bool HasRequiredFields(const Descriptor* descriptor) { - std::set already_seen; - return HasRequiredFields(descriptor, &already_seen); -} - -} // namespace java +} // namespace csharp } // namespace compiler } // namespace protobuf } // namespace google diff --git a/src/google/protobuf/compiler/csharp/csharp_helpers.h b/src/google/protobuf/compiler/csharp/csharp_helpers.h index d2ee8fbe..a8c1fa18 100644 --- a/src/google/protobuf/compiler/csharp/csharp_helpers.h +++ b/src/google/protobuf/compiler/csharp/csharp_helpers.h @@ -101,12 +101,6 @@ uint FixedMakeTag(const FieldDescriptor* descriptor); FieldGeneratorBase* CreateFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal); -bool HasRequiredFields(const Descriptor* descriptor); - -inline bool SupportFieldPresence(const FileDescriptor* file) { - return file->syntax() != FileDescriptor::SYNTAX_PROTO3; -} - } // namespace csharp } // namespace compiler } // namespace protobuf -- cgit v1.2.3