summaryrefslogtreecommitdiff
path: root/dhall/src/operations/kind.rs
diff options
context:
space:
mode:
authorNadrieril2020-09-14 23:09:22 +0100
committerNadrieril2020-09-14 23:19:49 +0100
commit7e523ae1903ae2d8bca8b3a8352167d7bac5b2b5 (patch)
tree37e53f88a0d3aa0621e021f307bfcfe4b0c8e29b /dhall/src/operations/kind.rs
parentffb7cff2ff317c81248a680e4899fa45eed00daa (diff)
spec: Enable `with` optimizations
Diffstat (limited to 'dhall/src/operations/kind.rs')
-rw-r--r--dhall/src/operations/kind.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/dhall/src/operations/kind.rs b/dhall/src/operations/kind.rs
index 0ee9671..2b035ef 100644
--- a/dhall/src/operations/kind.rs
+++ b/dhall/src/operations/kind.rs
@@ -55,6 +55,8 @@ pub enum OpKind<SubExpr> {
ProjectionByExpr(SubExpr, SubExpr),
/// `x::y`
Completion(SubExpr, SubExpr),
+ /// `x with a.b.c = y`
+ With(SubExpr, Vec<Label>, SubExpr),
}
impl<SE> OpKind<SE> {
@@ -85,6 +87,7 @@ impl<SE> OpKind<SE> {
Projection(e, ls) => Projection(expr!(e), ls.clone()),
ProjectionByExpr(e, x) => ProjectionByExpr(expr!(e), expr!(x)),
Completion(e, x) => Completion(expr!(e), expr!(x)),
+ With(x, ls, y) => With(expr!(x), ls.clone(), expr!(y)),
})
}