11//! Generated by `ast-generator`, do not edit by hand.
22
33use super::base::Translator;
4- use super::mappings::TextValue;
5- use crate::{pre_emit,post_emit};
4+ use super::mappings::{TextValue, HasTrapClass, Emission};
65use crate::generated;
76use crate::trap::{Label, TrapId};
87use ra_ap_syntax::ast::{
@@ -13,29 +12,23 @@ use ra_ap_syntax::ast::{
1312use ra_ap_syntax::{AstNode, ast};
1413
1514impl Translator<'_> {
16- fn emit_else_branch(&mut self, node: &ast::ElseBranch) -> Option<Label<generated::Expr>> {
17- match node {
18- ast::ElseBranch::IfExpr(inner) => self.emit_if_expr(inner).map(Into::into),
19- ast::ElseBranch::Block(inner) => self.emit_block_expr(inner).map(Into::into),
20- }
21- }
2215 {{#enums}}
2316
2417 pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option<Label<generated::{{name}}>> {
25- pre_emit!({{name}}, self, node);
18+ {{>pre_emission}}
2619 let label = match node {
2720 {{#variants}}
2821 ast::{{ast_name}}::{{variant_ast_name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into),
2922 {{/variants}}
3023 }?;
31- post_emit!({{name}}, self, node, label);
24+ {{>post_emission}}
3225 Some(label)
3326 }
3427 {{/enums}}
3528 {{#nodes}}
3629
3730 pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option<Label<generated::{{name}}>> {
38- pre_emit!({{name}}, self, node);
31+ {{>pre_emission}}
3932 {{#has_attrs}}
4033 if self.should_be_excluded(node) { return None; }
4134 {{/has_attrs}}
@@ -65,9 +58,15 @@ impl Translator<'_> {
6558 {{/fields}}
6659 });
6760 self.emit_location(label, node);
68- post_emit!({{name}}, self, node, label);
61+ {{>post_emission}}
6962 self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
7063 Some(label)
7164 }
7265 {{/nodes}}
7366}
67+ {{#enums}}
68+ {{>trap_class_mapping}}
69+ {{/enums}}
70+ {{#nodes}}
71+ {{>trap_class_mapping}}
72+ {{/nodes}}
0 commit comments