Use Printer::Emit formatting to remove optional args from GetOptionalDeprecatedAttribute.

PiperOrigin-RevId: 547303540
pull/13270/head
Thomas Van Lenten 2 years ago committed by Copybara-Service
parent 0196d1e138
commit d8b1a626dd
  1. 9
      src/google/protobuf/compiler/objectivec/helpers.h
  2. 10
      src/google/protobuf/compiler/objectivec/message.cc

@ -136,10 +136,8 @@ void EmitCommentsString(io::Printer* printer, const TDescriptor* descriptor,
} }
template <class TDescriptor> template <class TDescriptor>
std::string GetOptionalDeprecatedAttribute(const TDescriptor* descriptor, std::string GetOptionalDeprecatedAttribute(
const FileDescriptor* file = nullptr, const TDescriptor* descriptor, const FileDescriptor* file = nullptr) {
bool preSpace = true,
bool postNewline = false) {
bool isDeprecated = descriptor->options().deprecated(); bool isDeprecated = descriptor->options().deprecated();
// The file is only passed when checking Messages & Enums, so those types // The file is only passed when checking Messages & Enums, so those types
// get tagged. At the moment, it doesn't seem to make sense to tag every // get tagged. At the moment, it doesn't seem to make sense to tag every
@ -159,8 +157,7 @@ std::string GetOptionalDeprecatedAttribute(const TDescriptor* descriptor,
sourceFile->name(), ")."); sourceFile->name(), ").");
} }
return absl::StrCat(preSpace ? " " : "", "GPB_DEPRECATED_MSG(\"", message, return absl::StrCat("GPB_DEPRECATED_MSG(\"", message, "\")");
"\")", postNewline ? "\n" : "");
} else { } else {
return ""; return "";
} }

@ -219,8 +219,8 @@ MessageGenerator::MessageGenerator(const std::string& file_description_name,
descriptor_(descriptor), descriptor_(descriptor),
field_generators_(descriptor), field_generators_(descriptor),
class_name_(ClassName(descriptor_)), class_name_(ClassName(descriptor_)),
deprecated_attribute_(GetOptionalDeprecatedAttribute( deprecated_attribute_(
descriptor, descriptor->file(), false, true)) { GetOptionalDeprecatedAttribute(descriptor, descriptor->file())) {
for (int i = 0; i < descriptor_->real_oneof_decl_count(); i++) { for (int i = 0; i < descriptor_->real_oneof_decl_count(); i++) {
oneof_generators_.push_back( oneof_generators_.push_back(
std::make_unique<OneofGenerator>(descriptor_->oneof_decl(i))); std::make_unique<OneofGenerator>(descriptor_->oneof_decl(i)));
@ -304,7 +304,8 @@ void MessageGenerator::GenerateMessageHeader(io::Printer* printer) const {
auto vars = printer->WithVars({{"classname", class_name_}}); auto vars = printer->WithVars({{"classname", class_name_}});
printer->Emit( printer->Emit(
{{"deprecated_attribute", deprecated_attribute_}, {io::Printer::Sub("deprecated_attribute", deprecated_attribute_)
.WithSuffix(";"),
{"message_comments", {"message_comments",
[&] { [&] {
EmitCommentsString(printer, descriptor_, EmitCommentsString(printer, descriptor_,
@ -358,7 +359,8 @@ void MessageGenerator::GenerateMessageHeader(io::Printer* printer) const {
$message_fieldnum_enum$ $message_fieldnum_enum$
$oneof_enums$ $oneof_enums$
$message_comments$ $message_comments$
$deprecated_attribute$GPB_FINAL @interface $classname$ : GPBMessage $deprecated_attribute$;
GPB_FINAL @interface $classname$ : GPBMessage
$message_properties$ $message_properties$
@end @end

Loading…
Cancel
Save