diff options
author | Nadrieril | 2019-04-30 14:45:25 +0200 |
---|---|---|
committer | Nadrieril | 2019-04-30 14:45:25 +0200 |
commit | e2626a0bfd4b145e7d54c2150457f57e798ba2f7 (patch) | |
tree | de56af3215419814df3079c869c2bebd0c5383f5 /dhall/src/expr.rs | |
parent | 65a242abfa4d881dc17f216b3eeeb8aedc663388 (diff) |
Store a Thunk in Typed
Diffstat (limited to '')
-rw-r--r-- | dhall/src/expr.rs | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/dhall/src/expr.rs b/dhall/src/expr.rs index b2f2bec..c794324 100644 --- a/dhall/src/expr.rs +++ b/dhall/src/expr.rs @@ -38,12 +38,10 @@ derive_other_traits!(Resolved); #[derive(Debug, Clone)] pub(crate) struct Typed<'a>( - pub(crate) SubExpr<X, Normalized<'static>>, + pub(crate) crate::normalize::Thunk, pub(crate) Option<Type<'static>>, - pub(crate) crate::typecheck::TypecheckContext, pub(crate) PhantomData<&'a ()>, ); -derive_other_traits!(Typed); #[derive(Debug, Clone)] pub(crate) struct PartiallyNormalized<'a>( @@ -112,23 +110,17 @@ impl<'a> From<SubExpr<X, X>> for SimpleType<'a> { impl<'a> From<Normalized<'a>> for Typed<'a> { fn from(x: Normalized<'a>) -> Typed<'a> { Typed( - x.0.embed_absurd(), + crate::normalize::Thunk::new( + crate::normalize::NormalizationContext::new(), + x.0.embed_absurd(), + ), x.1, - crate::typecheck::TypecheckContext::new(), x.2, ) } } #[doc(hidden)] -#[allow(dead_code)] -impl<'a> Typed<'a> { - pub(crate) fn as_expr(&self) -> &SubExpr<X, Normalized<'a>> { - &self.0 - } -} - -#[doc(hidden)] impl<'a> Normalized<'a> { pub(crate) fn as_expr(&self) -> &SubExpr<X, X> { &self.0 |