From c40e554d3917eec3051f5d36addae5b365ab8c1b Mon Sep 17 00:00:00 2001 From: Лач Date: Fri, 24 Jul 2020 10:29:25 +0000 Subject: [PATCH] fix: make std.format not consume field on %% --- --- a/crates/jrsonnet-evaluator/src/builtin/format.rs +++ b/crates/jrsonnet-evaluator/src/builtin/format.rs @@ -670,9 +670,6 @@ Element::Code(c) => { // TODO: Operate on ref let f: Rc = c.mkey.into(); - if f.is_empty() { - throw!(MappingKeysRequired); - } let width = match c.width { Width::Star => { throw!(CannotUseStarWidthWithObject); @@ -686,10 +683,19 @@ Some(Width::Fixed(n)) => Some(n), None => None, }; - let value = if let Some(v) = values.get(f.clone())? { - v + + let value = if c.convtype == ConvTypeV::Percent { + Val::Null } else { - throw!(NoSuchFormatField(f)); + if f.is_empty() { + throw!(MappingKeysRequired); + } + let value = if let Some(v) = values.get(f.clone())? { + v + } else { + throw!(NoSuchFormatField(f)); + }; + value }; format_code(&mut out, &value, &c, width, precision)?; -- gitstuff