mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Rust: fix ast generator handling renamed enum variants
This commit is contained in:
@@ -432,6 +432,7 @@ fn get_fields(node: &AstNodeSrc) -> Vec<FieldInfo> {
|
||||
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<ExtractorEnumInfo> {
|
||||
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(),
|
||||
})
|
||||
|
||||
@@ -25,7 +25,7 @@ impl Translator<'_> {
|
||||
pub(crate) fn emit_{{snake_case_name}}(&mut self, node: ast::{{ast_name}}) -> Option<Label<generated::{{name}}>> {
|
||||
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}}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user