diff options
author | Fintan Halpenny | 2019-09-06 12:43:52 +0200 |
---|---|---|
committer | Fintan Halpenny | 2019-09-06 12:43:52 +0200 |
commit | 4424d3ece5db10527ae446a685a579ae768ef943 (patch) | |
tree | 688d29c25f12c2c5347e3d24db8b9b7fb83c7b04 /dhall/src/core/valuef.rs | |
parent | 52c91e08db68e05f760ebfd465b84fe4107731df (diff) | |
parent | bcaeab3b7b114d8782be9589ad673ab9ab8c59fd (diff) |
Merge remote-tracking branch 'origin/master' into fintan/canonicalize
Diffstat (limited to 'dhall/src/core/valuef.rs')
-rw-r--r-- | dhall/src/core/valuef.rs | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/dhall/src/core/valuef.rs b/dhall/src/core/valuef.rs index 7ecec86..4e457e6 100644 --- a/dhall/src/core/valuef.rs +++ b/dhall/src/core/valuef.rs @@ -110,17 +110,11 @@ impl ValueF { ValueF::UnionConstructor(l.clone(), kts.clone()).to_expr(opts), v.to_expr(opts), )), - ValueF::TextLit(elts) => { - use InterpolatedTextContents::{Expr, Text}; - rc(ExprF::TextLit( - elts.iter() - .map(|contents| match contents { - Expr(e) => Expr(e.to_expr(opts)), - Text(s) => Text(s.clone()), - }) - .collect(), - )) - } + ValueF::TextLit(elts) => rc(ExprF::TextLit( + elts.iter() + .map(|contents| contents.map_ref(|e| e.to_expr(opts))) + .collect(), + )), ValueF::Equivalence(x, y) => rc(ExprF::BinOp( dhall_syntax::BinOp::Equivalence, x.to_expr(opts), @@ -187,11 +181,7 @@ impl ValueF { } ValueF::TextLit(elts) => { for x in elts.iter_mut() { - use InterpolatedTextContents::{Expr, Text}; - match x { - Expr(n) => n.normalize_mut(), - Text(_) => {} - } + x.map_mut(Value::normalize_mut); } } ValueF::Equivalence(x, y) => { @@ -199,10 +189,7 @@ impl ValueF { y.normalize_mut(); } ValueF::PartialExpr(e) => { - // TODO: need map_mut - e.map_ref(|v| { - v.normalize_nf(); - }); + e.map_mut(Value::normalize_mut); } } } |