emit annotations for oneof field accessors in c++

pull/6034/head
Justin Buchanan 6 years ago committed by Adam Cozzette
parent da5e11b605
commit 27228494c3
  1. 1
      src/google/protobuf/compiler/cpp/cpp_helpers.h
  2. 8
      src/google/protobuf/compiler/cpp/cpp_message.cc

@ -643,6 +643,7 @@ class PROTOC_EXPORT Formatter {
static std::string ToString(const EnumValueDescriptor* d) {
return Payload(d);
}
static std::string ToString(const OneofDescriptor* d) { return Payload(d); }
template <typename Descriptor>
static std::string Payload(const Descriptor* descriptor) {

@ -761,8 +761,8 @@ void MessageGenerator::GenerateFieldAccessorDeclarations(io::Printer* printer) {
format.Set("oneof_name", oneof->name());
format.Set("camel_oneof_name", UnderscoresToCamelCase(oneof->name(), true));
format(
"void clear_$oneof_name$();\n"
"$camel_oneof_name$Case $oneof_name$_case() const;\n");
"void ${1$clear_$oneof_name$$}$();\n"
"$camel_oneof_name$Case $oneof_name$_case() const;\n", oneof);
}
}
@ -1511,10 +1511,10 @@ void MessageGenerator::GenerateInlineMethods(io::Printer* printer) {
format.Set("oneof_index", oneof->index());
format(
"inline $classname$::$camel_oneof_name$Case $classname$::"
"$oneof_name$_case() const {\n"
"${1$$oneof_name$_case$}$() const {\n"
" return $classname$::$camel_oneof_name$Case("
"_oneof_case_[$oneof_index$]);\n"
"}\n");
"}\n", oneof);
}
}

Loading…
Cancel
Save