summaryrefslogtreecommitdiff
path: root/dhall/src/semantics/core/visitor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'dhall/src/semantics/core/visitor.rs')
-rw-r--r--dhall/src/semantics/core/visitor.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/dhall/src/semantics/core/visitor.rs b/dhall/src/semantics/core/visitor.rs
index e61a649..a449f6c 100644
--- a/dhall/src/semantics/core/visitor.rs
+++ b/dhall/src/semantics/core/visitor.rs
@@ -94,12 +94,16 @@ where
RecordType(kts) => RecordType(v.visit_map(kts)?),
RecordLit(kvs) => RecordLit(v.visit_map(kvs)?),
UnionType(kts) => UnionType(v.visit_optmap(kts)?),
- UnionConstructor(l, kts) => {
- UnionConstructor(l.clone(), v.visit_optmap(kts)?)
- }
- UnionLit(l, t, kts) => {
- UnionLit(l.clone(), v.visit_val(t)?, v.visit_optmap(kts)?)
+ UnionConstructor(l, kts, t) => {
+ UnionConstructor(l.clone(), v.visit_optmap(kts)?, t.clone())
}
+ UnionLit(l, x, kts, uniont, ctort) => UnionLit(
+ l.clone(),
+ v.visit_val(x)?,
+ v.visit_optmap(kts)?,
+ uniont.clone(),
+ ctort.clone(),
+ ),
TextLit(ts) => TextLit(
ts.iter()
.map(|t| t.traverse_ref(|e| v.visit_val(e)))