From 4c08c603946fa0ac483317d85a71dd1f709eec74 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sun, 17 Mar 2019 22:02:10 +0100 Subject: Use Rc consistently everywhere --- dhall/src/binary.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'dhall/src/binary.rs') diff --git a/dhall/src/binary.rs b/dhall/src/binary.rs index 08bdba4..2279a51 100644 --- a/dhall/src/binary.rs +++ b/dhall/src/binary.rs @@ -1,7 +1,7 @@ use dhall_core::*; use itertools::*; -use std::rc::Rc; use serde_cbor::value::value as cbor; +use std::rc::Rc; type ParsedExpr = Rc>; @@ -22,7 +22,7 @@ fn cbor_value_to_dhall(data: &cbor::Value) -> Result { use cbor::Value::*; use dhall_core::{BinOp, Builtin, Const}; use Expr::*; - let e = match data { + Ok(rc(match data { String(s) => match Builtin::parse(s) { Some(b) => Expr::Builtin(b), None => match s.as_str() { @@ -198,7 +198,7 @@ fn cbor_value_to_dhall(data: &cbor::Value) -> Result { let expr = cbor_value_to_dhall(expr)?; return Ok(bindings .into_iter() - .fold(expr, |acc, (x, t, v)| bx(Let(x, t, v, acc)))); + .fold(expr, |acc, (x, t, v)| rc(Let(x, t, v, acc)))); } [U64(26), x, y] => { let x = cbor_value_to_dhall(&x)?; @@ -208,8 +208,7 @@ fn cbor_value_to_dhall(data: &cbor::Value) -> Result { _ => Err(DecodeError::WrongFormatError)?, }, _ => Err(DecodeError::WrongFormatError)?, - }; - Ok(bx(e)) + })) } fn cbor_map_to_dhall_map( -- cgit v1.2.3