diff options
author | Nadrieril Feneanar | 2020-02-20 20:22:39 +0000 |
---|---|---|
committer | GitHub | 2020-02-20 20:22:39 +0000 |
commit | 92b5604c1049a771239a70ab14c393e8e1807c68 (patch) | |
tree | 73ffbfd6417da6b8c650ba17c40c376dc7b23c4a /dhall/src/syntax/ast/expr.rs | |
parent | ffbde252a850c7d96e1000e1be52792c41733a28 (diff) | |
parent | e5f0602e431bc602f9e1f0045f48056ce6465481 (diff) |
Merge pull request #132 from Nadrieril/catchup-spec
Catchup spec
Diffstat (limited to 'dhall/src/syntax/ast/expr.rs')
-rw-r--r-- | dhall/src/syntax/ast/expr.rs | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/dhall/src/syntax/ast/expr.rs b/dhall/src/syntax/ast/expr.rs index a479b53..ce0a3d2 100644 --- a/dhall/src/syntax/ast/expr.rs +++ b/dhall/src/syntax/ast/expr.rs @@ -1,3 +1,5 @@ +use std::collections::BTreeMap; + use crate::semantics::Universe; use crate::syntax::map::{DupTreeMap, DupTreeSet}; use crate::syntax::visitor; @@ -165,7 +167,7 @@ pub enum ExprKind<SubExpr> { /// `{ k1 : t1, k2 : t1 }` RecordType(DupTreeMap<Label, SubExpr>), /// `{ k1 = v1, k2 = v2 }` - RecordLit(DupTreeMap<Label, SubExpr>), + RecordLit(BTreeMap<Label, SubExpr>), /// `< k1 : t1, k2 >` UnionType(DupTreeMap<Label, Option<SubExpr>>), /// `merge x y : t` @@ -237,32 +239,19 @@ impl<SE> ExprKind<SE> { } impl Expr { - pub fn as_ref(&self) -> &UnspannedExpr { + pub(crate) fn as_ref(&self) -> &UnspannedExpr { &self.kind } pub fn kind(&self) -> &UnspannedExpr { &self.kind } - pub fn span(&self) -> Span { + pub(crate) fn span(&self) -> Span { self.span.clone() } - pub fn new(kind: UnspannedExpr, span: Span) -> Self { - Expr { - kind: Box::new(kind), - span, - } - } - - pub fn rewrap(&self, kind: UnspannedExpr) -> Expr { + pub(crate) fn new(kind: UnspannedExpr, span: Span) -> Self { Expr { kind: Box::new(kind), - span: self.span.clone(), - } - } - pub fn with_span(self, span: Span) -> Self { - Expr { - kind: self.kind, span, } } |