summaryrefslogtreecommitdiff
path: root/dhall_core/src/visitor.rs
diff options
context:
space:
mode:
authorNadrieril2019-04-20 23:13:15 +0200
committerNadrieril2019-04-20 23:13:15 +0200
commitb31690a87e2963d4093210a2c58735a2095e651d (patch)
treed6bff16ce18dda443aa8b9a2fb31c31f0a502ec4 /dhall_core/src/visitor.rs
parent9c8ba84fa5d0b392f19e9e9b8569ee2fbe96bd28 (diff)
parent83bc67d4572fe7961842f915d5559ee489e13dfd (diff)
Merge branch 'whnf'
Massive normalization rewrite, for greatly improved flexibility and performance. Closes #84
Diffstat (limited to 'dhall_core/src/visitor.rs')
-rw-r--r--dhall_core/src/visitor.rs10
1 files changed, 2 insertions, 8 deletions
diff --git a/dhall_core/src/visitor.rs b/dhall_core/src/visitor.rs
index 16ad418..caaefce 100644
--- a/dhall_core/src/visitor.rs
+++ b/dhall_core/src/visitor.rs
@@ -130,9 +130,7 @@ where
let (l, e) = v.visit_binder(l, e)?;
Let(l, t, a, e)
}
- App(f, args) => {
- App(v.visit_subexpr(f)?, vec(args, |e| v.visit_subexpr(e))?)
- }
+ App(f, a) => App(v.visit_subexpr(f)?, v.visit_subexpr(a)?),
Annot(x, t) => Annot(v.visit_subexpr(x)?, v.visit_subexpr(t)?),
Const(k) => Const(*k),
Builtin(v) => Builtin(*v),
@@ -155,8 +153,7 @@ where
opt(x, |e| v.visit_subexpr(e))?,
v.visit_subexpr(t)?,
),
- EmptyOptionalLit(t) => EmptyOptionalLit(v.visit_subexpr(t)?),
- NEOptionalLit(e) => NEOptionalLit(v.visit_subexpr(e)?),
+ SomeLit(e) => SomeLit(v.visit_subexpr(e)?),
RecordType(kts) => RecordType(btmap(kts, v)?),
RecordLit(kvs) => RecordLit(btmap(kvs, v)?),
UnionType(kts) => UnionType(btoptmap(kts, v)?),
@@ -165,9 +162,6 @@ where
v.visit_subexpr(x)?,
btoptmap(kts, v)?,
),
- UnionConstructor(x, kts) => {
- UnionConstructor(v.visit_label(x)?, btoptmap(kts, v)?)
- }
Merge(x, y, t) => Merge(
v.visit_subexpr(x)?,
v.visit_subexpr(y)?,