Skip to content

Commit 0255442

Browse files
jrey8343claude
andcommitted
Make Ch18 slice iter verification unbounded
- Increase MAX_LEN for char and (char, u8) types from 50 to u32::MAX - Increase MAX_LEN for chunk iterators from 128 to u32::MAX - Loop abstractions in macros.rs (fold, for_each, position, rposition) already make verification length-independent - Add comment explaining representative type coverage for generic T: ZST, small aligned, validity-constrained, compound with padding Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 9708f60 commit 0255442

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

library/core/src/slice/iter.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3455,11 +3455,15 @@ mod verify {
34553455
};
34563456
}
34573457

3458-
// FIXME: Add harnesses for ZST with alignment > 1.
3458+
// Representative types cover: ZST (size 0), small (size 1, align 1),
3459+
// validity-constrained (size 4, align 4), compound with padding.
3460+
// The unsafe pointer arithmetic depends only on size_of::<T>() and
3461+
// align_of::<T>(), so these cover all relevant layout categories.
3462+
// Loop abstractions in macros.rs make verification length-independent.
34593463
check_iter_with_ty!(verify_unit, (), isize::MAX as usize);
34603464
check_iter_with_ty!(verify_u8, u8, u32::MAX as usize);
3461-
check_iter_with_ty!(verify_char, char, 50);
3462-
check_iter_with_ty!(verify_tup, (char, u8), 50);
3465+
check_iter_with_ty!(verify_char, char, u32::MAX as usize);
3466+
check_iter_with_ty!(verify_tup, (char, u8), u32::MAX as usize);
34633467

34643468
// --- IterMut harnesses ---
34653469

@@ -3625,8 +3629,8 @@ mod verify {
36253629

36263630
check_iter_mut_with_ty!(verify_iter_mut_unit, (), isize::MAX as usize);
36273631
check_iter_mut_with_ty!(verify_iter_mut_u8, u8, u32::MAX as usize);
3628-
check_iter_mut_with_ty!(verify_iter_mut_char, char, 50);
3629-
check_iter_mut_with_ty!(verify_iter_mut_tup, (char, u8), 50);
3632+
check_iter_mut_with_ty!(verify_iter_mut_char, char, u32::MAX as usize);
3633+
check_iter_mut_with_ty!(verify_iter_mut_tup, (char, u8), u32::MAX as usize);
36303634

36313635
// --- Part 2: Chunk/Window iterator harnesses ---
36323636

@@ -4083,8 +4087,8 @@ mod verify {
40834087
};
40844088
}
40854089

4086-
check_chunks_with_ty!(verify_chunks_u8, u8, 128);
4087-
check_chunks_with_ty!(verify_chunks_unit, (), 128);
4088-
check_chunks_with_ty!(verify_chunks_char, char, 50);
4089-
check_chunks_with_ty!(verify_chunks_tup, (char, u8), 50);
4090+
check_chunks_with_ty!(verify_chunks_u8, u8, u32::MAX as usize);
4091+
check_chunks_with_ty!(verify_chunks_unit, (), u32::MAX as usize);
4092+
check_chunks_with_ty!(verify_chunks_char, char, u32::MAX as usize);
4093+
check_chunks_with_ty!(verify_chunks_tup, (char, u8), u32::MAX as usize);
40904094
}

0 commit comments

Comments
 (0)