Skip to content

Commit 1be7a37

Browse files
committed
chore: Address clippy
1 parent deb9886 commit 1be7a37

File tree

10 files changed

+51
-51
lines changed

10 files changed

+51
-51
lines changed

liquid-compiler/src/lexer.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,7 @@ pub fn granularize(block: &str) -> Result<Vec<Token>> {
173173
}
174174
x if IDENTIFIER.is_match(x) => Token::Identifier(x.to_owned()),
175175
x => {
176-
return Err(
177-
Error::with_msg("Invalid identifier").context("identifier", format!("{}", x))
178-
)
176+
return Err(Error::with_msg("Invalid identifier").context("identifier", x.to_owned()))
179177
}
180178
});
181179
if let Some(v) = push_more {

liquid-error/src/error.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ where
3434

3535
/// Add context to a `liquid_error::Error`.
3636
pub trait ResultLiquidExt<T> {
37+
/// Add a new stack frame to the `liquid_error::Error`.
38+
fn trace<S>(self, trace: S) -> Result<T>
39+
where
40+
S: Into<borrow::Cow<'static, str>>;
41+
3742
/// Add a new stack frame to the `liquid_error::Error`.
3843
fn trace_with<F>(self, trace: F) -> Result<T>
3944
where
@@ -52,6 +57,13 @@ pub trait ResultLiquidExt<T> {
5257
}
5358

5459
impl<T> ResultLiquidExt<T> for Result<T> {
60+
fn trace<S>(self, trace: S) -> Result<T>
61+
where
62+
S: Into<borrow::Cow<'static, str>>,
63+
{
64+
self.map_err(|err| err.trace(trace))
65+
}
66+
5567
fn trace_with<F>(self, trace: F) -> Result<T>
5668
where
5769
F: FnOnce() -> String,

liquid-interpreter/src/context.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,13 @@ impl<'g> Stack<'g> {
163163
})?;
164164
let value = self
165165
.get_val(key)
166-
.ok_or_else(|| Error::with_msg("Invalid index").context("index", format!("{}", key)))?;
166+
.ok_or_else(|| Error::with_msg("Invalid index").context("index", key.to_owned()))?;
167167

168168
indexes.fold(Ok(value), |value, index| {
169169
let value = value?;
170170
let child = value.get(index);
171-
let child = child.ok_or_else(|| {
172-
Error::with_msg("Invalid index").context("index", format!("{}", key))
173-
})?;
171+
let child = child
172+
.ok_or_else(|| Error::with_msg("Invalid index").context("index", key.to_owned()))?;
174173
Ok(child)
175174
})
176175
}

src/tags/assign_tag.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@ impl Assign {
2424

2525
impl Renderable for Assign {
2626
fn render_to(&self, _writer: &mut Write, context: &mut Context) -> Result<()> {
27-
let value = self
28-
.src
29-
.evaluate(context)
30-
.trace_with(|| self.trace().into())?;
27+
let value = self.src.evaluate(context).trace_with(|| self.trace())?;
3128
context
3229
.stack_mut()
3330
.set_global_val(self.dst.to_owned(), value);

src/tags/capture_block.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ impl Renderable for Capture {
2828
let mut captured = Vec::new();
2929
self.template
3030
.render_to(&mut captured, context)
31-
.trace_with(|| self.trace().into())?;
31+
.trace_with(|| self.trace())?;
3232

3333
let output = String::from_utf8(captured).expect("render only writes UTF-8");
3434
context
@@ -55,9 +55,8 @@ pub fn capture_block(
5555
return Err(unexpected_token_error("`%}`", t));
5656
};
5757

58-
let t = Template::new(
59-
parse(tokens, options).trace_with(|| format!("{{% capture {} %}}", &id).into())?,
60-
);
58+
let t =
59+
Template::new(parse(tokens, options).trace_with(|| format!("{{% capture {} %}}", &id))?);
6160

6261
Ok(Box::new(Capture { id, template: t }))
6362
}

src/tags/case_block.rs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,18 @@ impl Renderable for Case {
6060
return case
6161
.template
6262
.render_to(writer, context)
63-
.trace_with(|| case.trace().into())
64-
.trace_with(|| self.trace().into())
65-
.context_with(|| (self.target.to_string().into(), value.to_string()));
63+
.trace_with(|| case.trace())
64+
.trace_with(|| self.trace())
65+
.context_with(|| (self.target.to_string(), value.to_string()));
6666
}
6767
}
6868

6969
if let Some(ref t) = self.else_block {
7070
return t
7171
.render_to(writer, context)
72-
.trace_with(|| "{{% else %}}".to_owned().into())
73-
.trace_with(|| self.trace().into())
74-
.context_with(|| (self.target.to_string().into(), value.to_string()));
72+
.trace("{{% else %}}")
73+
.trace_with(|| self.trace())
74+
.context_with(|| (self.target.to_string(), value.to_string()));
7575
}
7676

7777
Ok(())
@@ -125,16 +125,15 @@ fn parse_sections<'e>(
125125

126126
match parse_condition(&children[0])? {
127127
Conditional::Cond(conds) => {
128-
let template = Template::new(parse(leading, options).trace_with(|| {
129-
format!("{{% when {} %}}", itertools::join(conds.iter(), " or ")).into()
130-
})?);
128+
let template =
129+
Template::new(parse(leading, options).trace_with(|| {
130+
format!("{{% when {} %}}", itertools::join(conds.iter(), " or "))
131+
})?);
131132
case.cases.push(CaseOption::new(conds, template));
132133
}
133134
Conditional::Else => {
134135
if case.else_block.is_none() {
135-
let template = Template::new(
136-
parse(leading, options).trace_with(|| "{{% else %}}".to_owned().into())?,
137-
);
136+
let template = Template::new(parse(leading, options).trace("{{% else %}}")?);
138137
case.else_block = Some(template)
139138
} else {
140139
return Err(Error::with_msg("Only one else block allowed"));
@@ -168,7 +167,7 @@ pub fn case_block(
168167

169168
loop {
170169
let trailing = parse_sections(&mut result, children, options)
171-
.trace_with(|| format!("{{% case {} %}}", result.target).into())?;
170+
.trace_with(|| format!("{{% case {} %}}", result.target))?;
172171
match trailing {
173172
Some(split) => children = split.trailing,
174173
None => break,

src/tags/cycle_tag.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ impl Renderable for Cycle {
3030
let value = context
3131
.cycles()
3232
.cycle_element(&self.name, &self.values)
33-
.trace_with(|| self.trace().into())?;
33+
.trace_with(|| self.trace())?;
3434
write!(writer, "{}", value).chain("Failed to render")?;
3535
Ok(())
3636
}

src/tags/for_block.rs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ fn int_argument(arg: &Argument, context: &Context, arg_name: &str) -> Result<isi
8585
.as_scalar()
8686
.and_then(Scalar::to_integer)
8787
.ok_or_else(|| unexpected_value_error("whole number", Some(value.type_name())))
88-
.context_with(|| (arg_name.to_string().into(), value.to_string()))?;
88+
.context_with(|| (arg_name.to_string(), value.to_string()))?;
8989

9090
Ok(value as isize)
9191
}
@@ -111,18 +111,15 @@ fn for_slice(range: &mut [Value], limit: Option<usize>, offset: usize, reversed:
111111

112112
impl Renderable for For {
113113
fn render_to(&self, writer: &mut Write, context: &mut Context) -> Result<()> {
114-
let mut range = self
115-
.range
116-
.evaluate(context)
117-
.trace_with(|| self.trace().into())?;
114+
let mut range = self.range.evaluate(context).trace_with(|| self.trace())?;
118115
let range = for_slice(&mut range, self.limit, self.offset, self.reversed);
119116

120117
match range.len() {
121118
0 => {
122119
if let Some(ref t) = self.else_template {
123120
t.render_to(writer, context)
124-
.trace_with(|| "{{% else %}}".to_owned().into())
125-
.trace_with(|| self.trace().into())?;
121+
.trace("{{% else %}}")
122+
.trace_with(|| self.trace())?;
126123
}
127124
}
128125

@@ -148,8 +145,8 @@ impl Renderable for For {
148145
.set_val(self.var_name.to_owned(), v.clone());
149146
self.item_template
150147
.render_to(writer, &mut scope)
151-
.trace_with(|| self.trace().into())
152-
.context_with(|| (self.var_name.clone().into(), v.to_string()))
148+
.trace_with(|| self.trace())
149+
.context_with(|| (self.var_name.clone(), v.to_string()))
153150
.context_with(|| ("index".to_owned(), format!("{}", i + 1)))?;
154151

155152
// given that we're at the end of the loop body
@@ -273,14 +270,14 @@ pub fn for_block(
273270
let (leading, trailing) = split_block(tokens, &["else"], options);
274271
let item_template = Template::new(
275272
parse(leading, options)
276-
.trace_with(|| trace_for_tag(&var_name, &range, limit, offset, reversed).into())?,
273+
.trace_with(|| trace_for_tag(&var_name, &range, limit, offset, reversed))?,
277274
);
278275

279276
let else_template = match trailing {
280277
Some(split) => {
281278
let parsed = parse(&split.trailing[1..], options)
282-
.trace_with(|| "{{% else %}}".to_owned().into())
283-
.trace_with(|| trace_for_tag(&var_name, &range, limit, offset, reversed).into())?;
279+
.trace("{{% else %}}")
280+
.trace_with(|| trace_for_tag(&var_name, &range, limit, offset, reversed))?;
284281
Some(Template::new(parsed))
285282
}
286283
None => None,

src/tags/if_block.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ impl Conditional {
133133

134134
impl Renderable for Conditional {
135135
fn render_to(&self, writer: &mut Write, context: &mut Context) -> Result<()> {
136-
let condition = self.compare(context).trace_with(|| self.trace().into())?;
136+
let condition = self.compare(context).trace_with(|| self.trace())?;
137137
if condition {
138138
self.if_true
139139
.render_to(writer, context)
140-
.trace_with(|| self.trace().into())?;
140+
.trace_with(|| self.trace())?;
141141
} else if let Some(ref template) = self.if_false {
142142
template
143143
.render_to(writer, context)
144-
.trace_with(|| "{{% else %}}".to_owned().into())
145-
.trace_with(|| self.trace().into())?;
144+
.trace("{{% else %}}")
145+
.trace_with(|| self.trace())?;
146146
}
147147

148148
Ok(())
@@ -199,15 +199,15 @@ pub fn if_block(
199199
let (leading_tokens, trailing_tokens) = split_block(&tokens[..], &["else", "elsif"], options);
200200

201201
let if_true =
202-
parse(leading_tokens, options).trace_with(|| format!("{{% if {} %}}", condition).into())?;
202+
parse(leading_tokens, options).trace_with(|| format!("{{% if {} %}}", condition))?;
203203
let if_true = Template::new(if_true);
204204

205205
let if_false = match trailing_tokens {
206206
None => Ok(None),
207207

208208
Some(ref split) if split.delimiter == "else" => parse(&split.trailing[1..], options)
209209
.map(Some)
210-
.trace_with(|| "{{% else %}}".to_owned().into()),
210+
.trace("{{% else %}}"),
211211

212212
Some(ref split) if split.delimiter == "elsif" => {
213213
let child_tokens: Vec<Element> = split.trailing.iter().skip(1).cloned().collect();
@@ -218,7 +218,7 @@ pub fn if_block(
218218
Some(split) => panic!("Unexpected delimiter: {:?}", split.delimiter),
219219
};
220220
let if_false = if_false
221-
.trace_with(|| format!("{{% if {} %}}", condition).into())?
221+
.trace_with(|| format!("{{% if {} %}}", condition))?
222222
.map(Template::new);
223223

224224
Ok(Box::new(Conditional {

src/tags/include_tag.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ impl Renderable for Include {
2020
fn render_to(&self, writer: &mut Write, mut context: &mut Context) -> Result<()> {
2121
self.partial
2222
.render_to(writer, &mut context)
23-
.trace_with(|| format!("{{% include {} %}}", self.name).into())?;
23+
.trace_with(|| format!("{{% include {} %}}", self.name))?;
2424

2525
Ok(())
2626
}
@@ -46,8 +46,7 @@ pub fn include_tag(
4646
arg => return Err(unexpected_token_error("string", arg)),
4747
};
4848

49-
let partial =
50-
parse_partial(name, options).trace_with(|| format!("{{% include {} %}}", name).into())?;
49+
let partial = parse_partial(name, options).trace_with(|| format!("{{% include {} %}}", name))?;
5150

5251
Ok(Box::new(Include {
5352
name: name.to_owned(),

0 commit comments

Comments
 (0)