From 25bd09136742403d7f3d6c6143f72e6687f39457 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 30 Jan 2020 14:48:38 +0000 Subject: Make unnormalized Values unobservable --- dhall/src/semantics/core/value.rs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'dhall/src/semantics/core') diff --git a/dhall/src/semantics/core/value.rs b/dhall/src/semantics/core/value.rs index 02c8013..af01177 100644 --- a/dhall/src/semantics/core/value.rs +++ b/dhall/src/semantics/core/value.rs @@ -172,17 +172,12 @@ impl Value { fn as_internal_mut(&self) -> RefMut { self.0.borrow_mut() } - /// WARNING: The returned ValueKind may be entirely unnormalized, in particular it may just be an - /// unevaled PartialExpr. You probably want to use `as_whnf`. - pub(crate) fn as_kind(&self) -> Ref> { - Ref::map(self.as_internal(), ValueInternal::as_kind) - } /// This is what you want if you want to pattern-match on the value. /// WARNING: drop this ref before normalizing the same value or you will run into BorrowMut /// panics. pub(crate) fn kind(&self) -> Ref> { self.normalize_whnf(); - self.as_kind() + Ref::map(self.as_internal(), ValueInternal::as_kind) } /// Converts a value back to the corresponding AST expression. @@ -266,7 +261,7 @@ impl Value { } pub fn to_tyexpr(&self, venv: VarEnv) -> TyExpr { - let tye = match &*self.as_kind() { + let tye = match &*self.kind() { ValueKind::Var(v) => TyExprKind::Var(venv.lookup(v)), ValueKind::LamClosure { binder, -- cgit v1.2.3