Skip to content

Commit

Permalink
fix: fq_message_name should begin with one dot
Browse files Browse the repository at this point in the history
When package name is empty, but type_path is filled, the fq_message_name should begin with a single dot.

Two duplicate implementations are moved to a separate function.
  • Loading branch information
caspermeijn committed Feb 16, 2024
1 parent 907e9f6 commit 755978a
Showing 1 changed file with 14 additions and 24 deletions.
38 changes: 14 additions & 24 deletions prost-build/src/code_generator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,18 +122,7 @@ impl<'a> CodeGenerator<'a> {
debug!(" message: {:?}", message.name());

let message_name = message.name().to_string();
let fq_message_name = format!(
"{}{}{}{}.{}",
if self.package.is_empty() && self.type_path.is_empty() {
""
} else {
"."
},
self.package.trim_matches('.'),
if self.type_path.is_empty() { "" } else { "." },
self.type_path.join("."),
message_name,
);
let fq_message_name = self.fq_name(&message_name);

// Skip external types.
if self.extern_paths.resolve_ident(&fq_message_name).is_some() {
Expand Down Expand Up @@ -699,18 +688,7 @@ impl<'a> CodeGenerator<'a> {
let enum_name = to_upper_camel(proto_enum_name);

let enum_values = &desc.value;
let fq_proto_enum_name = format!(
"{}{}{}{}.{}",
if self.package.is_empty() && self.type_path.is_empty() {
""
} else {
"."
},
self.package.trim_matches('.'),
if self.type_path.is_empty() { "" } else { "." },
self.type_path.join("."),
proto_enum_name,
);
let fq_proto_enum_name = self.fq_name(proto_enum_name);

if self
.extern_paths
Expand Down Expand Up @@ -1063,6 +1041,18 @@ impl<'a> CodeGenerator<'a> {
.as_ref()
.map_or(false, FieldOptions::deprecated)
}

/// Returns the fully-qualified name, starting with a dot
fn fq_name(&self, message_name: &str) -> String {
format!(
"{}{}{}{}.{}",
if self.package.is_empty() { "" } else { "." },
self.package.trim_matches('.'),
if self.type_path.is_empty() { "" } else { "." },
self.type_path.join("."),
message_name,
)
}
}

/// Returns `true` if the repeated field type can be packed.
Expand Down

0 comments on commit 755978a

Please sign in to comment.