Skip to content

Commit

Permalink
escaping names correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
utkn committed Feb 6, 2025
1 parent b723bf5 commit aa625c5
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/lean/syntax.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ fn normalize_ident(ident: &str) -> String {
.join("::")
}

fn escape_ident(ident: &str) -> String {
ident.split("::").map(|s| format!("«{s}»")).join("::")
}

#[inline]
pub(super) fn format_struct_def(name: &str, def_generics: &str, fields: &str) -> String {
formatdoc! {
Expand Down Expand Up @@ -62,10 +66,11 @@ pub(super) fn format_free_function_def(
body: &str,
) -> (String, String) {
let func_ident = normalize_ident(func_ident);
let escaped_func_ident = escape_ident(&func_ident);
(
func_ident.clone(),
formatdoc! {
r"nr_def «{func_ident}»<{def_generics}>({params}) -> {ret_type} {{
r"nr_def {escaped_func_ident}<{def_generics}>({params}) -> {ret_type} {{
{body}
}}"
},
Expand All @@ -81,8 +86,9 @@ pub(super) fn format_trait_function_def(
body: &str,
) -> String {
let func_ident = normalize_ident(func_ident);
let escaped_func_ident = escape_ident(&func_ident);
formatdoc! {
r"fn {func_ident}<{def_generics}> ({params}) -> {ret_type} {{
r"fn {escaped_func_ident}<{def_generics}> ({params}) -> {ret_type} {{
{body}
}}"
}
Expand Down

0 comments on commit aa625c5

Please sign in to comment.