diff options
author | Nadrieril | 2020-01-30 19:56:31 +0000 |
---|---|---|
committer | Nadrieril | 2020-01-30 19:56:31 +0000 |
commit | d8de45763037937b5c2dedbe5f7bb95a4e7bc7cd (patch) | |
tree | 0c73b8ec2df6e8f592136133f07957e3ae8e8931 /dhall/src/semantics/nze/value.rs | |
parent | 673a580e11d31356bec25d73213b283685fd6ea3 (diff) |
Avoid unnecessary allocations of `Value`s
Diffstat (limited to 'dhall/src/semantics/nze/value.rs')
-rw-r--r-- | dhall/src/semantics/nze/value.rs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/dhall/src/semantics/nze/value.rs b/dhall/src/semantics/nze/value.rs index 108dc9c..ff0ca42 100644 --- a/dhall/src/semantics/nze/value.rs +++ b/dhall/src/semantics/nze/value.rs @@ -405,7 +405,7 @@ impl ValueInternal { use std::mem::replace; let dummy = Form::PartialExpr(ExprKind::Const(Const::Type)); self.form = match replace(&mut self.form, dummy) { - Form::Thunk(th) => Form::WHNF(th.eval().kind().clone()), + Form::Thunk(th) => Form::WHNF(th.eval()), Form::PartialExpr(e) => { Form::WHNF(match &self.ty { // TODO: env @@ -516,9 +516,7 @@ impl Thunk { body, } } - - // TODO: maybe return a ValueKind ? - pub fn eval(&self) -> Value { + pub fn eval(&self) -> ValueKind { normalize_tyexpr_whnf(&self.body, &self.env) } } |