Remove unused code in C# codegen
This commit is contained in:
parent
ee835a3fe4
commit
38d8d3948a
2 changed files with 1 additions and 47 deletions
|
@ -391,47 +391,7 @@ FieldGeneratorBase* CreateFieldGenerator(const FieldDescriptor* descriptor,
|
|||
}
|
||||
}
|
||||
|
||||
bool HasRequiredFields(const Descriptor* descriptor, std::set<const Descriptor*>* 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<const Descriptor*> already_seen;
|
||||
return HasRequiredFields(descriptor, &already_seen);
|
||||
}
|
||||
|
||||
} // namespace java
|
||||
} // namespace csharp
|
||||
} // namespace compiler
|
||||
} // namespace protobuf
|
||||
} // namespace google
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue