Skip to content

Commit 16f40c7

Browse files
committed
Try to use Arbitrary
1 parent 79f2d79 commit 16f40c7

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

library/core/src/ptr/alignment.rs

+9-4
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,13 @@ enum AlignmentEnum {
388388
mod verify {
389389
use super::*;
390390

391+
impl kani::Arbitrary for Alignment {
392+
fn any() -> Self {
393+
let align = kani::any_where(|a: &usize| a.is_power_of_two());
394+
unsafe { mem::transmute::<usize, Alignment>(align) }
395+
}
396+
}
397+
391398
// pub const fn of<T>() -> Self
392399
#[kani::proof]
393400
pub fn check_of_i32() {
@@ -423,10 +430,8 @@ mod verify {
423430
// pub const fn as_nonzero(self) -> NonZero<usize>
424431
#[kani::proof_for_contract(Alignment::as_nonzero)]
425432
pub fn check_as_nonzero() {
426-
let a = kani::any::<usize>();
427-
if let Some(alignment) = Alignment::new(a) {
428-
let _ = alignment.as_nonzero();
429-
}
433+
let alignment = kani::any::<Alignment>();
434+
let _ = alignment.as_nonzero();
430435
}
431436

432437
// pub const fn log2(self) -> u32

0 commit comments

Comments
 (0)