From 427a3416507db3fd4b534322d996bc8aafba5259 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 13 Apr 2019 21:34:51 +0200 Subject: Fix `let` parsing --- dhall/src/binary.rs | 1 + dhall_core/src/parser.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dhall/src/binary.rs b/dhall/src/binary.rs index c785daf..8a23e76 100644 --- a/dhall/src/binary.rs +++ b/dhall/src/binary.rs @@ -316,6 +316,7 @@ fn cbor_value_to_dhall(data: &cbor::Value) -> Result { let expr = cbor_value_to_dhall(expr)?; return Ok(bindings .into_iter() + .rev() .fold(expr, |acc, (x, t, v)| rc(Let(x, t, v, acc)))); } [U64(26), x, y] => { diff --git a/dhall_core/src/parser.rs b/dhall_core/src/parser.rs index 2d47ad7..e520f05 100644 --- a/dhall_core/src/parser.rs +++ b/dhall_core/src/parser.rs @@ -604,7 +604,7 @@ make_parser! { spanned(span, BoolIf(rc(cond), rc(left), rc(right))) }, [let_binding(bindings).., in_(()), expression(final_expr)] => { - bindings.fold( + bindings.rev().fold( final_expr, |acc, x| Let(x.0, x.1, x.2, rc(acc)) ) -- cgit v1.2.3