Skip to content

Commit bc70538

Browse files
committed
Use autoharness for convert::num::<impl convert::From<num::nonzero::NonZero<*>> for num::nonzero::NonZero<*>>::from
1 parent 153f5d1 commit bc70538

File tree

2 files changed

+1
-68
lines changed

2 files changed

+1
-68
lines changed

.github/workflows/kani.yml

+1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ jobs:
8282
--include-pattern alloc::layout::Layout::from_size_align \
8383
--include-pattern ascii::ascii_char::AsciiChar::from_u8 \
8484
--include-pattern char::convert::from_u32_unchecked \
85+
--include-pattern "convert::num::<impl convert::From<num::nonzero::NonZero<" \
8586
--include-pattern "num::<impl i8>::unchecked_add" \
8687
--include-pattern "num::<impl i16>::unchecked_add" \
8788
--include-pattern "num::<impl i32>::unchecked_add" \

library/core/src/convert/num.rs

-68
Original file line numberDiff line numberDiff line change
@@ -601,74 +601,6 @@ impl_nonzero_int_try_from_nonzero_int!(isize => u8, u16, u32, u64, u128, usize);
601601
mod verify {
602602
use super::*;
603603

604-
// Generate harnesses for `NonZero::<Large>::from(NonZero<Small>)`.
605-
macro_rules! generate_nonzero_int_from_nonzero_int_harness {
606-
($Small:ty => $Large:ty, $harness:ident) => {
607-
#[kani::proof]
608-
pub fn $harness() {
609-
let x: NonZero<$Small> = kani::any();
610-
let _ = NonZero::<$Large>::from(x);
611-
}
612-
};
613-
}
614-
615-
// This bundles the calls to `generate_nonzero_int_from_nonzero_int_harness`
616-
// macro into segregated namespaces for better organization and usability.
617-
macro_rules! generate_nonzero_int_from_nonzero_int_harnesses {
618-
($ns:ident, $Small:ty => $($Large:tt),+ $(,)?) => {
619-
mod $ns {
620-
use super::*;
621-
622-
$(
623-
mod $Large {
624-
use super::*;
625-
626-
generate_nonzero_int_from_nonzero_int_harness!(
627-
$Small => $Large,
628-
check_nonzero_int_from_nonzero_int
629-
);
630-
}
631-
)+
632-
}
633-
};
634-
}
635-
636-
// non-zero unsigned integer -> non-zero integer, infallible
637-
generate_nonzero_int_from_nonzero_int_harnesses!(
638-
check_nonzero_int_from_u8,
639-
u8 => u16, u32, u64, u128, usize, i16, i32, i64, i128, isize,
640-
);
641-
generate_nonzero_int_from_nonzero_int_harnesses!(
642-
check_nonzero_int_from_u16,
643-
u16 => u32, u64, u128, usize, i32, i64, i128,
644-
);
645-
generate_nonzero_int_from_nonzero_int_harnesses!(
646-
check_nonzero_int_from_u32,
647-
u32 => u64, u128, i64, i128,
648-
);
649-
generate_nonzero_int_from_nonzero_int_harnesses!(
650-
check_nonzero_int_from_u64,
651-
u64 => u128, i128,
652-
);
653-
654-
// non-zero signed integer -> non-zero signed integer, infallible
655-
generate_nonzero_int_from_nonzero_int_harnesses!(
656-
check_nonzero_int_from_i8,
657-
i8 => i16, i32, i64, i128, isize,
658-
);
659-
generate_nonzero_int_from_nonzero_int_harnesses!(
660-
check_nonzero_int_from_i16,
661-
i16 => i32, i64, i128, isize,
662-
);
663-
generate_nonzero_int_from_nonzero_int_harnesses!(
664-
check_nonzero_int_from_i32,
665-
i32 => i64, i128,
666-
);
667-
generate_nonzero_int_from_nonzero_int_harnesses!(
668-
check_nonzero_int_from_i64,
669-
i64 => i128,
670-
);
671-
672604
// Generates harnesses for `NonZero::<target>::try_from(NonZero<source>)`.
673605
// Since the function may be fallible or infallible depending on `source` and `target`,
674606
// this macro supports generating both cases.

0 commit comments

Comments
 (0)