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 {
|
struct EnumVariantInfo {
|
||||||
name: String,
|
name: String,
|
||||||
snake_case_name: String,
|
snake_case_name: String,
|
||||||
|
variant_ast_name: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize)]
|
#[derive(Serialize)]
|
||||||
@@ -480,9 +481,14 @@ fn enum_to_extractor_info(node: &AstEnumSrc) -> Option<ExtractorEnumInfo> {
|
|||||||
variants: node
|
variants: node
|
||||||
.variants
|
.variants
|
||||||
.iter()
|
.iter()
|
||||||
.map(|v| EnumVariantInfo {
|
.map(|v| {
|
||||||
name: v.clone(),
|
let name = class_name(v);
|
||||||
snake_case_name: to_lower_snake_case(v),
|
let snake_case_name = to_lower_snake_case(v);
|
||||||
|
EnumVariantInfo {
|
||||||
|
name,
|
||||||
|
snake_case_name,
|
||||||
|
variant_ast_name: v.clone(),
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.collect(),
|
.collect(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ impl Translator<'_> {
|
|||||||
pub(crate) fn emit_{{snake_case_name}}(&mut self, node: ast::{{ast_name}}) -> Option<Label<generated::{{name}}>> {
|
pub(crate) fn emit_{{snake_case_name}}(&mut self, node: ast::{{ast_name}}) -> Option<Label<generated::{{name}}>> {
|
||||||
match node {
|
match node {
|
||||||
{{#variants}}
|
{{#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}}
|
{{/variants}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user