From 5b5d4b683b483b153f7e30c0b91270ed237f18c8 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 27 Apr 2019 17:09:24 +0200 Subject: Replace TypeInternal::RecordType with WHNF::RecordType --- dhall/src/typecheck.rs | 79 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 28 deletions(-) (limited to 'dhall/src/typecheck.rs') diff --git a/dhall/src/typecheck.rs b/dhall/src/typecheck.rs index 2c3a36f..9e985e4 100644 --- a/dhall/src/typecheck.rs +++ b/dhall/src/typecheck.rs @@ -6,6 +6,7 @@ use std::fmt; use std::marker::PhantomData; use crate::expr::*; +use crate::normalize::{TypeThunk, WHNF}; use crate::traits::DynamicType; use dhall_core; use dhall_core::context::Context; @@ -113,10 +114,13 @@ impl<'a> Type<'a> { fn into_internal(self) -> TypeInternal<'a> { self.0 } - fn shift0(&self, delta: isize, label: &Label) -> Self { + fn internal_whnf(&self) -> Option<&WHNF> { + self.0.whnf() + } + pub(crate) fn shift0(&self, delta: isize, label: &Label) -> Self { Type(self.0.shift0(delta, label)) } - fn shift(&self, delta: isize, var: &V