git.delta.rocks / jrsonnet / refs/commits / 370c6155b374

difftreelog

fix faster format consumes value for %%

Лач2020-07-21parent: #11b9a15.patch.diff
in: master

1 file changed

modifiedcrates/jrsonnet-evaluator/src/builtin/format.rsdiffbeforeafterboth
637 None => None,637 None => None,
638 };638 };
639
640 // %% should not consume a value
641 let value = if c.convtype == ConvTypeV::Percent {
642 &Val::Null
643 } else {
639 if values.is_empty() {644 if values.is_empty() {
640 return Err(FormatError::NotEnoughValues);645 return Err(FormatError::NotEnoughValues);
641 }646 }
642 let value = &values[0];647 let value = &values[0];
643 values = &values[1..];648 values = &values[1..];
649 value
650 };
644651
645 format_code(&mut out, value, &c, width, precision)?;652 format_code(&mut out, value, &c, width, precision)?;
646 }653 }
721 assert_eq!(format_arr("%+-04o", &[Val::Num(8.0)]).unwrap(), "+10 ");728 assert_eq!(format_arr("%+-04o", &[Val::Num(8.0)]).unwrap(), "+10 ");
722 }729 }
730
731 #[test]
732 fn percent_doesnt_consumes_values() {
733 assert_eq!(
734 format_arr(
735 "How much error budget is left looking at our %.3f%% availability gurantees?",
736 &[Val::Num(4.0)]
737 )
738 .unwrap(),
739 "How much error budget is left looking at our 4.000% availability gurantees?"
740 );
741 }
723}742}
724743