mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-16 09:11:55 +00:00
templater: inline parse_optional_integer() in method body
If each method body is split to closure, this parse helper will no longer be able to capture the environment.
This commit is contained in:
parent
1b4c339203
commit
8226584ae9
1 changed files with 8 additions and 8 deletions
|
@ -706,15 +706,12 @@ fn build_commit_or_change_id_method<'repo>(
|
||||||
self_property: impl TemplateProperty<Commit, Output = CommitOrChangeId> + 'repo,
|
self_property: impl TemplateProperty<Commit, Output = CommitOrChangeId> + 'repo,
|
||||||
function: &FunctionCallNode,
|
function: &FunctionCallNode,
|
||||||
) -> TemplateParseResult<CommitTemplatePropertyKind<'repo>> {
|
) -> TemplateParseResult<CommitTemplatePropertyKind<'repo>> {
|
||||||
let parse_optional_integer = |function| -> Result<Option<_>, TemplateParseError> {
|
|
||||||
let ([], [len_node]) = template_parser::expect_arguments(function)?;
|
|
||||||
len_node
|
|
||||||
.map(|node| template_builder::expect_integer_expression(language, build_ctx, node))
|
|
||||||
.transpose()
|
|
||||||
};
|
|
||||||
let property = match function.name {
|
let property = match function.name {
|
||||||
"short" => {
|
"short" => {
|
||||||
let len_property = parse_optional_integer(function)?;
|
let ([], [len_node]) = template_parser::expect_arguments(function)?;
|
||||||
|
let len_property = len_node
|
||||||
|
.map(|node| template_builder::expect_integer_expression(language, build_ctx, node))
|
||||||
|
.transpose()?;
|
||||||
language.wrap_string(TemplateFunction::new(
|
language.wrap_string(TemplateFunction::new(
|
||||||
(self_property, len_property),
|
(self_property, len_property),
|
||||||
|(id, len)| id.short(len.map_or(12, |l| l.try_into().unwrap_or(0))),
|
|(id, len)| id.short(len.map_or(12, |l| l.try_into().unwrap_or(0))),
|
||||||
|
@ -722,7 +719,10 @@ fn build_commit_or_change_id_method<'repo>(
|
||||||
}
|
}
|
||||||
"shortest" => {
|
"shortest" => {
|
||||||
let id_prefix_context = &language.id_prefix_context;
|
let id_prefix_context = &language.id_prefix_context;
|
||||||
let len_property = parse_optional_integer(function)?;
|
let ([], [len_node]) = template_parser::expect_arguments(function)?;
|
||||||
|
let len_property = len_node
|
||||||
|
.map(|node| template_builder::expect_integer_expression(language, build_ctx, node))
|
||||||
|
.transpose()?;
|
||||||
language.wrap_shortest_id_prefix(TemplateFunction::new(
|
language.wrap_shortest_id_prefix(TemplateFunction::new(
|
||||||
(self_property, len_property),
|
(self_property, len_property),
|
||||||
|(id, len)| {
|
|(id, len)| {
|
||||||
|
|
Loading…
Reference in a new issue