summaryrefslogtreecommitdiff
path: root/dhall/src/normalize.rs
diff options
context:
space:
mode:
authorNadrieril2019-04-22 00:56:47 +0200
committerNadrieril2019-04-22 00:56:47 +0200
commita5c94605e29f3694928d6e03de325c0c81fee7b2 (patch)
treeaae0a5edf7ad405ec23c94d0c0e6a2695a4b4d2e /dhall/src/normalize.rs
parent0f334c9d112e3ee961eb35c09c85140fdf2aa8f6 (diff)
Store context in Typed
Diffstat (limited to '')
-rw-r--r--dhall/src/normalize.rs21
1 files changed, 7 insertions, 14 deletions
diff --git a/dhall/src/normalize.rs b/dhall/src/normalize.rs
index 0301e35..35a6b23 100644
--- a/dhall/src/normalize.rs
+++ b/dhall/src/normalize.rs
@@ -16,20 +16,13 @@ type OutputSubExpr = SubExpr<X, X>;
impl<'a> Typed<'a> {
pub fn normalize(self) -> Normalized<'a> {
- Normalized(normalize(self.0), self.1, self.2)
- }
- pub fn normalize_ctx(
- self,
- ctx: &crate::typecheck::TypecheckContext,
- ) -> Normalized<'a> {
Normalized(
- normalize_whnf(
- NormalizationContext::from_typecheck_ctx(ctx),
+ normalize(
+ NormalizationContext::from_typecheck_ctx(&self.2),
self.0,
- )
- .normalize_to_expr(),
+ ),
self.1,
- self.2,
+ self.3,
)
}
/// Pretends this expression is normalized. Use with care.
@@ -38,7 +31,7 @@ impl<'a> Typed<'a> {
Normalized(
self.0.unroll().squash_embed(|e| e.0.clone()),
self.1,
- self.2,
+ self.3,
)
}
}
@@ -832,8 +825,8 @@ fn normalize_last_layer(expr: ExprF<WHNF, Label, X, X>) -> WHNF {
/// However, `normalize` will not fail if the expression is ill-typed and will
/// leave ill-typed sub-expressions unevaluated.
///
-fn normalize(e: InputSubExpr) -> OutputSubExpr {
- normalize_whnf(NormalizationContext::new(), e).normalize_to_expr()
+fn normalize(ctx: NormalizationContext, e: InputSubExpr) -> OutputSubExpr {
+ normalize_whnf(ctx, e).normalize_to_expr()
}
#[cfg(test)]