diff options
author | Nadrieril | 2019-05-09 12:48:41 +0200 |
---|---|---|
committer | Nadrieril | 2019-05-09 12:48:41 +0200 |
commit | 2020d41874f7681ba948a40d8e8f8993d651a81c (patch) | |
tree | 48668a407c9049d5b40f0195b5060cca6f5fd67d /dhall_syntax/src/core/expr.rs | |
parent | 325228d54a5b51979e0be112a51988c7449df89c (diff) |
Detect duplicate record fields in typecheck
Diffstat (limited to '')
-rw-r--r-- | dhall_syntax/src/core/expr.rs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/dhall_syntax/src/core/expr.rs b/dhall_syntax/src/core/expr.rs index 3bc7504..4bfd224 100644 --- a/dhall_syntax/src/core/expr.rs +++ b/dhall_syntax/src/core/expr.rs @@ -1,5 +1,4 @@ #![allow(non_snake_case)] -use std::collections::BTreeMap; use std::rc::Rc; use crate::visitor; @@ -202,13 +201,13 @@ pub enum ExprF<SubExpr, Label, Embed> { /// `Some e` SomeLit(SubExpr), /// `{ k1 : t1, k2 : t1 }` - RecordType(BTreeMap<Label, SubExpr>), + RecordType(Vec<(Label, SubExpr)>), /// `{ k1 = v1, k2 = v2 }` - RecordLit(BTreeMap<Label, SubExpr>), + RecordLit(Vec<(Label, SubExpr)>), /// `< k1 : t1, k2 >` - UnionType(BTreeMap<Label, Option<SubExpr>>), + UnionType(Vec<(Label, Option<SubExpr>)>), /// `< k1 = t1, k2 : t2, k3 >` - UnionLit(Label, SubExpr, BTreeMap<Label, Option<SubExpr>>), + UnionLit(Label, SubExpr, Vec<(Label, Option<SubExpr>)>), /// `merge x y : t` Merge(SubExpr, SubExpr, Option<SubExpr>), /// `e.x` |