From dedfa796304e7f991dd9f407b17d69f91372c010 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Wed, 6 May 2020 20:30:03 -0400 Subject: [PATCH] Do a truthiness check on references before printing them. --- src/renderer/renderer.rs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/renderer/renderer.rs b/src/renderer/renderer.rs index 13a8b29..f4b3edd 100644 --- a/src/renderer/renderer.rs +++ b/src/renderer/renderer.rs @@ -99,13 +99,17 @@ impl<'a> DustRenderer<'a> { } DustTag::DTReference(reference) => { let val = walk_path(breadcrumbs, &reference.path.keys); - let loop_elements: Vec<&dyn ContextElement> = self.get_loop_elements(val)?; - if loop_elements.is_empty() { - // if let Err(RenderError::NotFound { .. }) = val { - // If reference does not exist in the context, it becomes an empty string - return Ok("".to_owned()); - } else { - return val?.render(&reference.filters); + match val { + Err(RenderError::NotFound { .. }) => return Ok("".to_owned()), + Ok(final_val) => { + let loop_elements = final_val.get_loop_elements()?; + if loop_elements.is_empty() { + return Ok("".to_owned()); + } else { + return final_val.render(&reference.filters); + } + } + Err(render_error) => return Err(render_error), } } DustTag::DTSection(container) => {