@@ -2561,18 +2561,32 @@ mod verify {
25612561
25622562 macro_rules! nonzero_check_add {
25632563 ( $t: ty, $nonzero_type: ty, $nonzero_check_unchecked_add_for: ident) => {
2564- #[ kani:: proof_for_contract( <$t >:: unchecked_add) ]
2564+ #[ kani:: proof_for_contract( <$nonzero_type >:: unchecked_add) ]
25652565 pub fn $nonzero_check_unchecked_add_for( ) {
25662566 let x: $nonzero_type = kani:: any( ) ;
2567- let y: $nonzero_type = kani:: any( ) ;
2568-
2567+ let y: $t = kani:: any( ) ;
2568+
25692569 unsafe {
2570- x. get ( ) . unchecked_add( y. get ( ) ) ;
2570+ x. unchecked_add( y) ;
25712571 }
25722572 }
25732573 } ;
25742574 }
25752575
2576+ // Generate proofs for all NonZero types
2577+ nonzero_check_add ! ( i8 , core:: num:: NonZeroI8 , nonzero_check_unchecked_add_for_i8) ;
2578+ nonzero_check_add ! ( i16 , core:: num:: NonZeroI16 , nonzero_check_unchecked_add_for_i16) ;
2579+ nonzero_check_add ! ( i32 , core:: num:: NonZeroI32 , nonzero_check_unchecked_add_for_i32) ;
2580+ nonzero_check_add ! ( i64 , core:: num:: NonZeroI64 , nonzero_check_unchecked_add_for_i64) ;
2581+ nonzero_check_add ! ( i128 , core:: num:: NonZeroI128 , nonzero_check_unchecked_add_for_i128) ;
2582+ nonzero_check_add ! ( isize , core:: num:: NonZeroIsize , nonzero_check_unchecked_add_for_isize) ;
2583+ nonzero_check_add ! ( u8 , core:: num:: NonZeroU8 , nonzero_check_unchecked_add_for_u8) ;
2584+ nonzero_check_add ! ( u16 , core:: num:: NonZeroU16 , nonzero_check_unchecked_add_for_u16) ;
2585+ nonzero_check_add ! ( u32 , core:: num:: NonZeroU32 , nonzero_check_unchecked_add_for_u32) ;
2586+ nonzero_check_add ! ( u64 , core:: num:: NonZeroU64 , nonzero_check_unchecked_add_for_u64) ;
2587+ nonzero_check_add ! ( u128 , core:: num:: NonZeroU128 , nonzero_check_unchecked_add_for_u128) ;
2588+ nonzero_check_add ! ( usize , core:: num:: NonZeroUsize , nonzero_check_unchecked_add_for_usize) ;
2589+
25762590 // Use the macro to generate different versions of the function for multiple types
25772591 nonzero_check_cmp ! ( core:: num:: NonZeroI8 , nonzero_check_cmp_for_i8) ;
25782592 nonzero_check_cmp ! ( core:: num:: NonZeroI16 , nonzero_check_cmp_for_i16) ;
@@ -2602,20 +2616,6 @@ mod verify {
26022616 }
26032617 } ;
26042618 }
2605-
2606- // Generate proofs for all NonZero types
2607- nonzero_check_add ! ( i8 , core:: num:: NonZeroI8 , nonzero_check_unchecked_add_for_i8) ;
2608- nonzero_check_add ! ( i16 , core:: num:: NonZeroI16 , nonzero_check_unchecked_add_for_i16) ;
2609- nonzero_check_add ! ( i32 , core:: num:: NonZeroI32 , nonzero_check_unchecked_add_for_i32) ;
2610- nonzero_check_add ! ( i64 , core:: num:: NonZeroI64 , nonzero_check_unchecked_add_for_i64) ;
2611- nonzero_check_add ! ( i128 , core:: num:: NonZeroI128 , nonzero_check_unchecked_add_for_i128) ;
2612- nonzero_check_add ! ( isize , core:: num:: NonZeroIsize , nonzero_check_unchecked_add_for_isize) ;
2613- nonzero_check_add ! ( u8 , core:: num:: NonZeroU8 , nonzero_check_unchecked_add_for_u8) ;
2614- nonzero_check_add ! ( u16 , core:: num:: NonZeroU16 , nonzero_check_unchecked_add_for_u16) ;
2615- nonzero_check_add ! ( u32 , core:: num:: NonZeroU32 , nonzero_check_unchecked_add_for_u32) ;
2616- nonzero_check_add ! ( u64 , core:: num:: NonZeroU64 , nonzero_check_unchecked_add_for_u64) ;
2617- nonzero_check_add ! ( u128 , core:: num:: NonZeroU128 , nonzero_check_unchecked_add_for_u128) ;
2618- nonzero_check_add ! ( usize , core:: num:: NonZeroUsize , nonzero_check_unchecked_add_for_usize) ;
26192619
26202620 nonzero_check_max ! ( core:: num:: NonZeroI8 , nonzero_check_max_for_i8) ;
26212621 nonzero_check_max ! ( core:: num:: NonZeroI16 , nonzero_check_max_for_i16) ;
0 commit comments