From c2bb1f48c2c8d1002a7264dbaf78a13b7d5ea454 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Mon, 27 Apr 2020 21:14:34 +0800 Subject: [PATCH] Reduce size of scope entry. --- src/optimize.rs | 4 ++-- src/scope.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/optimize.rs b/src/optimize.rs index 324fb03a..3f00e711 100644 --- a/src/optimize.rs +++ b/src/optimize.rs @@ -646,12 +646,12 @@ fn optimize<'a>( .filter(|ScopeEntry { typ, expr, .. }| { // Get all the constants with definite constant expressions *typ == ScopeEntryType::Constant - && expr.as_ref().map(Expr::is_constant).unwrap_or(false) + && expr.as_ref().map(|v| v.is_constant()).unwrap_or(false) }) .for_each(|ScopeEntry { name, expr, .. }| { state.push_constant( name.as_ref(), - expr.as_ref().expect("should be Some(expr)").clone(), + (**expr.as_ref().expect("should be Some(expr)")).clone(), ) }); diff --git a/src/scope.rs b/src/scope.rs index f34905e6..de57e8c2 100644 --- a/src/scope.rs +++ b/src/scope.rs @@ -25,7 +25,7 @@ pub struct Entry<'a> { /// Current value of the entry. pub value: Dynamic, /// A constant expression if the initial value matches one of the recognized types. - pub expr: Option, + pub expr: Option>, } /// Information about a particular entry in the Scope. @@ -227,7 +227,7 @@ impl<'a> Scope<'a> { map_expr: bool, ) { let expr = if map_expr { - map_dynamic_to_expr(value.clone(), Position::none()) + map_dynamic_to_expr(value.clone(), Position::none()).map(Box::new) } else { None };