@@ -653,7 +653,7 @@ impl Binary {
653
653
654
654
let lhs = truncate ( lhs. try_into_u128 ( ) ?, * bit_size) ;
655
655
let rhs = truncate ( rhs. try_into_u128 ( ) ?, * bit_size) ;
656
- let result = function ( lhs, rhs) ? ;
656
+ let result = function ( lhs, rhs) ;
657
657
truncate ( result, * bit_size) . into ( )
658
658
}
659
659
_ => return None ,
@@ -689,18 +689,18 @@ impl BinaryOp {
689
689
}
690
690
}
691
691
692
- fn get_u128_function ( self ) -> fn ( u128 , u128 ) -> Option < u128 > {
692
+ fn get_u128_function ( self ) -> fn ( u128 , u128 ) -> u128 {
693
693
match self {
694
- BinaryOp :: Add => u128:: checked_add ,
695
- BinaryOp :: Sub => u128:: checked_sub ,
696
- BinaryOp :: Mul => u128:: checked_mul ,
697
- BinaryOp :: Div => u128:: checked_div ,
698
- BinaryOp :: Mod => u128:: checked_rem ,
699
- BinaryOp :: And => |x, y| Some ( x & y) ,
700
- BinaryOp :: Or => |x, y| Some ( x | y) ,
701
- BinaryOp :: Xor => |x, y| Some ( x ^ y) ,
702
- BinaryOp :: Eq => |x, y| Some ( ( x == y) as u128 ) ,
703
- BinaryOp :: Lt => |x, y| Some ( ( x < y) as u128 ) ,
694
+ BinaryOp :: Add => u128:: wrapping_add ,
695
+ BinaryOp :: Sub => u128:: wrapping_sub ,
696
+ BinaryOp :: Mul => u128:: wrapping_mul ,
697
+ BinaryOp :: Div => u128:: wrapping_div ,
698
+ BinaryOp :: Mod => u128:: wrapping_rem ,
699
+ BinaryOp :: And => |x, y| x & y,
700
+ BinaryOp :: Or => |x, y| x | y,
701
+ BinaryOp :: Xor => |x, y| x ^ y,
702
+ BinaryOp :: Eq => |x, y| ( x == y) as u128 ,
703
+ BinaryOp :: Lt => |x, y| ( x < y) as u128 ,
704
704
}
705
705
}
706
706
}
0 commit comments