From 3c918201f90204373aafc8bf08a46bbecea43160 Mon Sep 17 00:00:00 2001 From: Hong Shin Date: Thu, 24 Oct 2024 10:55:54 -0700 Subject: [PATCH] Remove extension_scope bifurcation in gen_extension_cc and adopt .Emit over .EmitLegacy PiperOrigin-RevId: 689441553 --- hpb_generator/gen_extensions.cc | 38 ++++++++++++++++----------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/hpb_generator/gen_extensions.cc b/hpb_generator/gen_extensions.cc index 7035c4d617..959da3db3a 100644 --- a/hpb_generator/gen_extensions.cc +++ b/hpb_generator/gen_extensions.cc @@ -7,6 +7,8 @@ #include "google/protobuf/compiler/hpb/gen_extensions.h" +#include + #include "absl/strings/str_cat.h" #include "google/protobuf/compiler/hpb/context.h" #include "google/protobuf/compiler/hpb/names.h" @@ -65,25 +67,23 @@ void WriteExtensionIdentifier(const protobuf::FieldDescriptor* ext, Context& ctx) { std::string mini_table_name = absl::StrCat(ExtensionIdentifierBase(ext), "_", ext->name(), "_ext"); - if (ext->extension_scope()) { - ctx.EmitLegacy( - R"cc( - constexpr ::hpb::internal::ExtensionIdentifier<$0, $3> $4::$2 = - ::hpb::internal::PrivateAccess::InvokeConstructor< - ::hpb::internal::ExtensionIdentifier<$0, $3>>(&$1); - )cc", - ContainingTypeName(ext), mini_table_name, ext->name(), - CppTypeParameterName(ext), ClassName(ext->extension_scope())); - } else { - ctx.EmitLegacy( - R"cc( - constexpr ::hpb::internal::ExtensionIdentifier<$0, $3> $2 = - ::hpb::internal::PrivateAccess::InvokeConstructor< - ::hpb::internal::ExtensionIdentifier<$0, $3>>(&$1); - )cc", - ContainingTypeName(ext), mini_table_name, ext->name(), - CppTypeParameterName(ext)); - } + std::string class_prefix = + ext->extension_scope() ? ClassName(ext->extension_scope()) + "::" : ""; + ctx.Emit( + {{"containing_type_name", ContainingTypeName(ext)}, + {"mini_table_name", mini_table_name}, + {"ext_name", ext->name()}, + {"ext_type", CppTypeParameterName(ext)}, + {"class_prefix", class_prefix}}, + R"cc( + constexpr ::hpb::internal::ExtensionIdentifier<$containing_type_name$, + $ext_type$> + $class_prefix$$ext_name$ = + ::hpb::internal::PrivateAccess::InvokeConstructor< + ::hpb::internal::ExtensionIdentifier<$containing_type_name$, + $ext_type$>>( + &$mini_table_name$); + )cc"); } void WriteExtensionIdentifiers(