Annotate some Kotlin generated protobuf code.

Note that this change removes the use of ${$ and $}$ in
the body of a template `clear` method. These brackets are
currently unused (there's no Annotate call and the variables are
set to the empty string); it also shouldn't be necessary to
annotate non-definitions.

PiperOrigin-RevId: 596254156
pull/15261/head
Protobuf Team Bot 1 year ago committed by Copybara-Service
parent 585c87904a
commit 69cffdca9c
  1. 29
      src/google/protobuf/compiler/java/message.cc
  2. 3
      src/google/protobuf/compiler/java/message_field.cc

@ -1296,16 +1296,25 @@ void ImmutableMessageGenerator::GenerateKotlinMembers(
EscapeKotlinKeywords(name_resolver_->GetClassName(descriptor_, true)));
WriteMessageDocComment(printer, descriptor_, /* kdoc */ true);
printer->Print("public object $name$Kt {\n", "name", descriptor_->name());
printer->Indent();
GenerateKotlinDsl(printer);
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
if (IsMapEntry(descriptor_->nested_type(i))) continue;
ImmutableMessageGenerator(descriptor_->nested_type(i), context_)
.GenerateKotlinMembers(printer);
}
printer->Outdent();
printer->Print("}\n");
printer->Emit(
{
io::Printer::Sub{"name_kt", absl::StrCat(descriptor_->name(), "Kt")}
.AnnotatedAs(descriptor_),
{"body",
[&]() {
GenerateKotlinDsl(printer);
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
if (IsMapEntry(descriptor_->nested_type(i))) continue;
ImmutableMessageGenerator(descriptor_->nested_type(i), context_)
.GenerateKotlinMembers(printer);
}
}},
},
R"kt(
public object $name_kt$ {
$body$;
}
)kt");
}
void ImmutableMessageGenerator::GenerateTopLevelKotlinMembers(

@ -390,8 +390,9 @@ void ImmutableMessageFieldGenerator::GenerateKotlinDslMembers(
/* builder */ false, /* kdoc */ true);
printer->Print(variables_,
"public fun ${$clear$kt_capitalized_name$$}$() {\n"
" $kt_dsl_builder$.${$clear$capitalized_name$$}$()\n"
" $kt_dsl_builder$.clear$capitalized_name$()\n"
"}\n");
printer->Annotate("{", "}", descriptor_, Semantic::kSet);
WriteFieldAccessorDocComment(printer, descriptor_, HAZZER,
context_->options(),

Loading…
Cancel
Save