diff options
author | Nadrieril | 2019-05-10 19:49:38 +0200 |
---|---|---|
committer | Nadrieril | 2019-05-10 19:49:38 +0200 |
commit | a8e696f62f14296b94964adb1946d7e2b5ef5ebd (patch) | |
tree | 8ac9c17c4e0cf7470b047c46ac7042d1db1bb1e9 /dhall_syntax/src/core/expr.rs | |
parent | 36bcec6c91d3192b5c84c96af96961ff6b79f0f0 (diff) |
Write a custom map type that allows duplicates
Diffstat (limited to '')
-rw-r--r-- | dhall_syntax/src/core/expr.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/dhall_syntax/src/core/expr.rs b/dhall_syntax/src/core/expr.rs index c509bae..f8b0215 100644 --- a/dhall_syntax/src/core/expr.rs +++ b/dhall_syntax/src/core/expr.rs @@ -1,6 +1,7 @@ #![allow(non_snake_case)] use std::rc::Rc; +use crate::map::DupTreeMap; use crate::visitor; use crate::*; @@ -201,13 +202,13 @@ pub enum ExprF<SubExpr, Embed> { /// `Some e` SomeLit(SubExpr), /// `{ k1 : t1, k2 : t1 }` - RecordType(Vec<(Label, SubExpr)>), + RecordType(DupTreeMap<Label, SubExpr>), /// `{ k1 = v1, k2 = v2 }` - RecordLit(Vec<(Label, SubExpr)>), + RecordLit(DupTreeMap<Label, SubExpr>), /// `< k1 : t1, k2 >` - UnionType(Vec<(Label, Option<SubExpr>)>), + UnionType(DupTreeMap<Label, Option<SubExpr>>), /// `< k1 = t1, k2 : t2, k3 >` - UnionLit(Label, SubExpr, Vec<(Label, Option<SubExpr>)>), + UnionLit(Label, SubExpr, DupTreeMap<Label, Option<SubExpr>>), /// `merge x y : t` Merge(SubExpr, SubExpr, Option<SubExpr>), /// `e.x` |