cl-interpret: Enforce wrapping behavior

This commit is contained in:
2024-07-09 06:13:55 -05:00
parent 0beb121f32
commit b446677eda
2 changed files with 13 additions and 9 deletions

View File

@@ -1,9 +1,9 @@
//! Implementations of built-in functions
use super::{
convalue::ConValue,
env::Environment,
error::{Error, IResult},
convalue::ConValue,
BuiltIn, Callable,
};
use cl_ast::Sym;
@@ -183,7 +183,7 @@ builtins! {
pub fn neg(tail) -> IResult<ConValue> {
Ok(match tail {
ConValue::Empty => ConValue::Empty,
ConValue::Int(v) => ConValue::Int(-v),
ConValue::Int(v) => ConValue::Int(v.wrapping_neg()),
_ => Err(Error::TypeError)?,
})
}