From 7edb3d4685aff00880906873db4eb9f649a077d9 Mon Sep 17 00:00:00 2001 From: René Kijewski Date: Sat, 17 Sep 2022 03:48:10 +0200 Subject: Add Expr::is_cachable() --- askama_derive/src/generator.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'askama_derive/src/generator.rs') diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs index e8d15f6..7077cfd 100644 --- a/askama_derive/src/generator.rs +++ b/askama_derive/src/generator.rs @@ -7,7 +7,7 @@ use crate::CompileError; use proc_macro::TokenStream; use quote::{quote, ToTokens}; -use std::collections::HashMap; +use std::collections::hash_map::{Entry, HashMap}; use std::path::{Path, PathBuf}; use std::{cmp, hash, mem, str}; @@ -1196,11 +1196,9 @@ impl<'a> Generator<'a> { expr_buf.buf, self.input.escaper ), }; - let is_cacheable = !matches!(s, Expr::Call(..)); - use std::collections::hash_map::Entry; let id = match expr_cache.entry(expression.clone()) { - Entry::Occupied(e) if is_cacheable => *e.get(), + Entry::Occupied(e) if s.is_cachable() => *e.get(), e => { let id = self.named; self.named += 1; -- cgit