diff --git a/src/commit_templater.rs b/src/commit_templater.rs index eb291edf2..63cc777a6 100644 --- a/src/commit_templater.rs +++ b/src/commit_templater.rs @@ -458,8 +458,7 @@ pub fn parse<'repo>( aliases_map: &TemplateAliasesMap, ) -> TemplateParseResult + 'repo>> { let language = CommitTemplateLanguage { repo, workspace_id }; - let node = template_parser::parse_template(template_text)?; - let node = template_parser::expand_aliases(node, aliases_map)?; + let node = template_parser::parse(template_text, aliases_map)?; let expression = template_parser::build_expression(&language, &node)?; Ok(expression.into_template()) } diff --git a/src/operation_templater.rs b/src/operation_templater.rs index 24f56185a..878818ba2 100644 --- a/src/operation_templater.rs +++ b/src/operation_templater.rs @@ -187,8 +187,7 @@ pub fn parse( ) -> TemplateParseResult>> { let head_op_id = repo.op_id(); let language = OperationTemplateLanguage { head_op_id }; - let node = template_parser::parse_template(template_text)?; - let node = template_parser::expand_aliases(node, aliases_map)?; + let node = template_parser::parse(template_text, aliases_map)?; let expression = template_parser::build_expression(&language, &node)?; Ok(expression.into_template()) } diff --git a/src/template_parser.rs b/src/template_parser.rs index e040ca1ee..3270c1390 100644 --- a/src/template_parser.rs +++ b/src/template_parser.rs @@ -587,6 +587,17 @@ pub fn expand_aliases<'i>( expand_node(node, state) } +/// Parses text into AST nodes, and expands aliases. +/// +/// No type/name checking is made at this stage. +pub fn parse<'i>( + template_text: &'i str, + aliases_map: &'i TemplateAliasesMap, +) -> TemplateParseResult> { + let node = parse_template(template_text)?; + expand_aliases(node, aliases_map) +} + /// Callbacks to build language-specific evaluation objects from AST nodes. pub trait TemplateLanguage<'a> { type Context: 'a; @@ -1195,8 +1206,7 @@ mod tests { impl WithTemplateAliasesMap { fn parse<'i>(&'i self, template_text: &'i str) -> TemplateParseResult> { - let node = parse_template(template_text)?; - expand_aliases(node, &self.0) + parse(template_text, &self.0) } fn parse_normalized<'i>(