Skip to content

Commit

Permalink
Fix Clippy diagnostics
Browse files Browse the repository at this point in the history
  • Loading branch information
c410-f3r committed Feb 26, 2022
1 parent 0a9cf77 commit 9d27769
Showing 1 changed file with 21 additions and 11 deletions.
32 changes: 21 additions & 11 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,23 +108,23 @@ macro_rules! array_refs {
use std::slice;
#[inline]
#[allow(unused_assignments)]
#[allow(eval_order_dependence)]
#[allow(clippy::eval_order_dependence)]
unsafe fn as_arrays<T>(a: &[T]) -> ( $( &[T; $pre], )* &[T], $( &[T; $post], )*) {
let min_len = $( $pre + )* $( $post + )* 0;
let var_len = a.len() - min_len;
assert!(a.len() >= min_len);
let mut p = a.as_ptr();
( $( {
let aref = & *(p as *const [T; $pre]);
p = p.offset($pre as isize);
p = p.add($pre);
aref
} ),* , {
let sl = slice::from_raw_parts(p as *const T, var_len);
p = p.offset(var_len as isize);
p = p.add(var_len);
sl
}, $( {
let aref = & *(p as *const [T; $post]);
p = p.offset($post as isize);
p = p.add($post);
aref
} ),*)
}
Expand All @@ -139,7 +139,7 @@ macro_rules! array_refs {
{
#[inline]
#[allow(unused_assignments)]
#[allow(eval_order_dependence)]
#[allow(clippy::eval_order_dependence)]
unsafe fn as_arrays<T>(a: &[T; $( $len + )* 0 ]) -> ( $( &[T; $len], )* ) {
let mut p = a.as_ptr();
( $( {
Expand Down Expand Up @@ -205,23 +205,23 @@ macro_rules! mut_array_refs {
use std::slice;
#[inline]
#[allow(unused_assignments)]
#[allow(eval_order_dependence)]
#[allow(clippy::eval_order_dependence)]
unsafe fn as_arrays<T>(a: &mut [T]) -> ( $( &mut [T; $pre], )* &mut [T], $( &mut [T; $post], )*) {
let min_len = $( $pre + )* $( $post + )* 0;
let var_len = a.len() - min_len;
assert!(a.len() >= min_len);
let mut p = a.as_mut_ptr();
( $( {
let aref = &mut *(p as *mut [T; $pre]);
p = p.offset($pre as isize);
p = p.add($pre);
aref
} ),* , {
let sl = slice::from_raw_parts_mut(p as *mut T, var_len);
p = p.offset(var_len as isize);
p = p.add(var_len);
sl
}, $( {
let aref = &mut *(p as *mut [T; $post]);
p = p.offset($post as isize);
p = p.add($post);
aref
} ),*)
}
Expand All @@ -236,12 +236,12 @@ macro_rules! mut_array_refs {
{
#[inline]
#[allow(unused_assignments)]
#[allow(eval_order_dependence)]
#[allow(clippy::eval_order_dependence)]
unsafe fn as_arrays<T>(a: &mut [T; $( $len + )* 0 ]) -> ( $( &mut [T; $len], )* ) {
let mut p = a.as_mut_ptr();
( $( {
let aref = &mut *(p as *mut [T; $len]);
p = p.offset($len as isize);
p = p.add($len);
aref
} ),* )
}
Expand Down Expand Up @@ -297,6 +297,7 @@ macro_rules! array_mut_ref {
}


#[allow(clippy::all)]
#[cfg(test)]
mod test {

Expand Down Expand Up @@ -473,4 +474,13 @@ fn test_5_mut_xarray_refs_with_dotdot() {
assert_eq!(&[10;10], array_ref![data, 118, 10]);
}

#[forbid(clippy::ptr_offset_with_cast)]
#[test]
fn forbidden_clippy_lints_do_not_fire() {
let mut data = [0u8; 32];
let _ = array_refs![&data, 8; .. ;];
let _ = mut_array_refs![&mut data, 8; .. ; 10];
}

} // mod test

0 comments on commit 9d27769

Please sign in to comment.