From 7538e29275720407ac172bb05cdbc028d95ff921 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 9 May 2019 16:32:30 +0200 Subject: Make shift fallible and improve shift ergonomics --- dhall_syntax/src/core/expr.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'dhall_syntax') diff --git a/dhall_syntax/src/core/expr.rs b/dhall_syntax/src/core/expr.rs index 4bfd224..1a33ed1 100644 --- a/dhall_syntax/src/core/expr.rs +++ b/dhall_syntax/src/core/expr.rs @@ -442,22 +442,26 @@ pub fn rc(x: Expr) -> SubExpr { /// Add an isize to an usize /// Panics on over/underflow -fn add_ui(u: usize, i: isize) -> usize { - if i < 0 { - u.checked_sub(i.checked_neg().unwrap() as usize).unwrap() +fn add_ui(u: usize, i: isize) -> Option { + Some(if i < 0 { + u.checked_sub(i.checked_neg()? as usize)? } else { - u.checked_add(i as usize).unwrap() - } + u.checked_add(i as usize)? + }) } impl V