summaryrefslogtreecommitdiffstats
path: root/contrib/libs/protoc/src/google/protobuf/compiler/ruby
diff options
context:
space:
mode:
authorpg <[email protected]>2023-02-08 14:47:59 +0300
committerpg <[email protected]>2023-02-08 14:47:59 +0300
commit2999295666a93b51c9226cee88ea70b996d43727 (patch)
tree6cd1a5290a2653689a33c6269c0eebb7dd05729d /contrib/libs/protoc/src/google/protobuf/compiler/ruby
parente615f3f87f0fc3dcc0d45c304883339ab1eab8c1 (diff)
3.19.0
Diffstat (limited to 'contrib/libs/protoc/src/google/protobuf/compiler/ruby')
-rw-r--r--contrib/libs/protoc/src/google/protobuf/compiler/ruby/ruby_generator.cc36
1 files changed, 7 insertions, 29 deletions
diff --git a/contrib/libs/protoc/src/google/protobuf/compiler/ruby/ruby_generator.cc b/contrib/libs/protoc/src/google/protobuf/compiler/ruby/ruby_generator.cc
index acf806a7e6d..d4b4b482d66 100644
--- a/contrib/libs/protoc/src/google/protobuf/compiler/ruby/ruby_generator.cc
+++ b/contrib/libs/protoc/src/google/protobuf/compiler/ruby/ruby_generator.cc
@@ -465,35 +465,8 @@ void EndPackageModules(int levels, io::Printer* printer) {
}
}
-bool UsesTypeFromFile(const Descriptor* message, const FileDescriptor* file,
- TProtoStringType* error) {
- for (int i = 0; i < message->field_count(); i++) {
- const FieldDescriptor* field = message->field(i);
- if ((field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE &&
- field->message_type()->file() == file) ||
- (field->type() == FieldDescriptor::TYPE_ENUM &&
- field->enum_type()->file() == file)) {
- *error = "proto3 message field " + field->full_name() + " in file " +
- file->name() + " has a dependency on a type from proto2 file " +
- file->name() +
- ". Ruby doesn't support proto2 yet, so we must fail.";
- return true;
- }
- }
-
- for (int i = 0; i < message->nested_type_count(); i++) {
- if (UsesTypeFromFile(message->nested_type(i), file, error)) {
- return true;
- }
- }
-
- return false;
-}
-
bool GenerateDslDescriptor(const FileDescriptor* file, io::Printer* printer,
TProtoStringType* error) {
- printer->Print(
- "require 'google/protobuf'\n\n");
printer->Print("Google::Protobuf::DescriptorPool.generated_pool.build do\n");
printer->Indent();
printer->Print("add_file(\"$filename$\", :syntax => :$syntax$) do\n",
@@ -534,8 +507,13 @@ bool GenerateFile(const FileDescriptor* file, io::Printer* printer,
"\n",
"filename", file->name());
- for (int i = 0; i < file->dependency_count(); i++) {
- printer->Print("require '$name$'\n", "name", GetRequireName(file->dependency(i)->name()));
+ printer->Print("require 'google/protobuf'\n\n");
+
+ if (file->dependency_count() != 0) {
+ for (int i = 0; i < file->dependency_count(); i++) {
+ printer->Print("require '$name$'\n", "name", GetRequireName(file->dependency(i)->name()));
+ }
+ printer->Print("\n");
}
// TODO: Remove this when ruby supports extensions for proto2 syntax.