Skip to content

Commit 77e37b7

Browse files
committed
templater: map stringify() of unset RefSymbol value to empty string
Since other Option<T> types are stringified through Template for Option<T>, it was inconsistent that None of RefSymbol type couldn't be stringified.
1 parent 75f8a0e commit 77e37b7

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

cli/src/commit_templater.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -557,8 +557,7 @@ impl<'repo> CoreTemplatePropertyVar<'repo> for CommitTemplatePropertyKind<'repo>
557557
Self::RefSymbol(property) => Some(property.map(|RefSymbolBuf(s)| s).into_dyn()),
558558
Self::RefSymbolOpt(property) => Some(
559559
property
560-
.try_unwrap("RefSymbol")
561-
.map(|RefSymbolBuf(s)| s)
560+
.map(|opt| opt.map_or_else(String::new, |RefSymbolBuf(s)| s))
562561
.into_dyn(),
563562
),
564563
_ => {
@@ -2827,9 +2826,7 @@ mod tests {
28272826
// string type were quoted/escaped. (e.g. `"foo".contains(bookmark)`)
28282827
insta::assert_snapshot!(env.render_ok("stringify(self)", &sym("a b")), @"a b");
28292828
insta::assert_snapshot!(env.render_ok("stringify(self)", &Some(sym("a b"))), @"a b");
2830-
insta::assert_snapshot!(
2831-
env.render_ok("stringify(self)", &None::<RefSymbolBuf>),
2832-
@"<Error: No RefSymbol available>");
2829+
insta::assert_snapshot!(env.render_ok("stringify(self)", &None::<RefSymbolBuf>), @"");
28332830

28342831
// string methods
28352832
insta::assert_snapshot!(env.render_ok("self.len()", &sym("a b")), @"3");

cli/src/template_builder.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3471,10 +3471,12 @@ mod tests {
34713471
#[test]
34723472
fn test_stringify_function() {
34733473
let mut env = TestTemplateEnv::new();
3474+
env.add_keyword("none_i64", || literal(None::<i64>));
34743475
env.add_color("error", crossterm::style::Color::DarkRed);
34753476

34763477
insta::assert_snapshot!(env.render_ok("stringify(false)"), @"false");
34773478
insta::assert_snapshot!(env.render_ok("stringify(42).len()"), @"2");
3479+
insta::assert_snapshot!(env.render_ok("stringify(none_i64)"), @"");
34783480
insta::assert_snapshot!(env.render_ok("stringify(label('error', 'text'))"), @"text");
34793481
}
34803482

0 commit comments

Comments
 (0)