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