From 394f3eb1be4cec9f563908fe39e933f87137771d Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 27 Mar 2025 16:18:33 +0100 Subject: [PATCH] Rust: fix ast generator handling renamed enum variants --- rust/ast-generator/src/main.rs | 12 +++++++++--- rust/ast-generator/src/templates/extractor.mustache | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 86c2859ee96..8b8d7f5c593 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -432,6 +432,7 @@ fn get_fields(node: &AstNodeSrc) -> Vec { struct EnumVariantInfo { name: String, snake_case_name: String, + variant_ast_name: String, } #[derive(Serialize)] @@ -480,9 +481,14 @@ fn enum_to_extractor_info(node: &AstEnumSrc) -> Option { variants: node .variants .iter() - .map(|v| EnumVariantInfo { - name: v.clone(), - snake_case_name: to_lower_snake_case(v), + .map(|v| { + let name = class_name(v); + let snake_case_name = to_lower_snake_case(v); + EnumVariantInfo { + name, + snake_case_name, + variant_ast_name: v.clone(), + } }) .collect(), }) diff --git a/rust/ast-generator/src/templates/extractor.mustache b/rust/ast-generator/src/templates/extractor.mustache index 0532bb32ff7..c83881027bb 100644 --- a/rust/ast-generator/src/templates/extractor.mustache +++ b/rust/ast-generator/src/templates/extractor.mustache @@ -25,7 +25,7 @@ impl Translator<'_> { pub(crate) fn emit_{{snake_case_name}}(&mut self, node: ast::{{ast_name}}) -> Option> { match node { {{#variants}} - ast::{{ast_name}}::{{name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into), + ast::{{ast_name}}::{{variant_ast_name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into), {{/variants}} } }