Skip to content

Commit 394f3eb

Browse files
author
Paolo Tranquilli
committed
Rust: fix ast generator handling renamed enum variants
1 parent 32f6acb commit 394f3eb

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

rust/ast-generator/src/main.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,7 @@ fn get_fields(node: &AstNodeSrc) -> Vec<FieldInfo> {
432432
struct EnumVariantInfo {
433433
name: String,
434434
snake_case_name: String,
435+
variant_ast_name: String,
435436
}
436437

437438
#[derive(Serialize)]
@@ -480,9 +481,14 @@ fn enum_to_extractor_info(node: &AstEnumSrc) -> Option<ExtractorEnumInfo> {
480481
variants: node
481482
.variants
482483
.iter()
483-
.map(|v| EnumVariantInfo {
484-
name: v.clone(),
485-
snake_case_name: to_lower_snake_case(v),
484+
.map(|v| {
485+
let name = class_name(v);
486+
let snake_case_name = to_lower_snake_case(v);
487+
EnumVariantInfo {
488+
name,
489+
snake_case_name,
490+
variant_ast_name: v.clone(),
491+
}
486492
})
487493
.collect(),
488494
})

rust/ast-generator/src/templates/extractor.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ impl Translator<'_> {
2525
pub(crate) fn emit_{{snake_case_name}}(&mut self, node: ast::{{ast_name}}) -> Option<Label<generated::{{name}}>> {
2626
match node {
2727
{{#variants}}
28-
ast::{{ast_name}}::{{name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into),
28+
ast::{{ast_name}}::{{variant_ast_name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into),
2929
{{/variants}}
3030
}
3131
}

0 commit comments

Comments
 (0)