summaryrefslogtreecommitdiff
path: root/dhall/src/semantics/nze/value.rs
diff options
context:
space:
mode:
authorNadrieril2020-01-30 19:56:31 +0000
committerNadrieril2020-01-30 19:56:31 +0000
commitd8de45763037937b5c2dedbe5f7bb95a4e7bc7cd (patch)
tree0c73b8ec2df6e8f592136133f07957e3ae8e8931 /dhall/src/semantics/nze/value.rs
parent673a580e11d31356bec25d73213b283685fd6ea3 (diff)
Avoid unnecessary allocations of `Value`s
Diffstat (limited to 'dhall/src/semantics/nze/value.rs')
-rw-r--r--dhall/src/semantics/nze/value.rs6
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)
}
}