diff --git a/src/helpers.rs b/src/helpers.rs index badd262938..fd9d57c487 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -1,5 +1,3 @@ -pub mod convert; - use std::cmp; use std::iter; use std::num::NonZeroUsize; diff --git a/src/helpers/convert.rs b/src/helpers/convert.rs deleted file mode 100644 index 4506fe4749..0000000000 --- a/src/helpers/convert.rs +++ /dev/null @@ -1,49 +0,0 @@ -use implementations::NarrowerThan; - -/// Replacement for `as` casts going from wide integer to narrower integer. -/// -/// # Example -/// -/// ```ignore -/// let x = 99_u64; -/// let lo = x.truncate::(); -/// // lo is of type u16, equivalent to `x as u16`. -/// ``` -pub(crate) trait Truncate: Sized { - fn truncate(self) -> To - where - To: NarrowerThan, - { - NarrowerThan::truncate_from(self) - } -} - -impl Truncate for u16 {} -impl Truncate for u32 {} -impl Truncate for u64 {} -impl Truncate for u128 {} - -mod implementations { - pub(crate) trait NarrowerThan { - fn truncate_from(wide: T) -> Self; - } - - macro_rules! impl_narrower_than { - ($(NarrowerThan<{$($ty:ty),*}> for $self:ty)*) => { - $($( - impl NarrowerThan<$ty> for $self { - fn truncate_from(wide: $ty) -> Self { - wide as Self - } - } - )*)* - }; - } - - impl_narrower_than! { - NarrowerThan<{u128, u64, u32, u16}> for u8 - NarrowerThan<{u128, u64, u32}> for u16 - NarrowerThan<{u128, u64}> for u32 - NarrowerThan<{u128}> for u64 - } -} diff --git a/tests/pass/intrinsics-x86-avx512.rs b/tests/pass/intrinsics-x86-avx512.rs index a5615aaa43..c38158dc79 100644 --- a/tests/pass/intrinsics-x86-avx512.rs +++ b/tests/pass/intrinsics-x86-avx512.rs @@ -1,5 +1,6 @@ // Ignore everything except x86 and x86_64 // Any additional target are added to CI should be ignored here +// (We cannot use `cfg`-based tricks here since the `target-feature` flags below only work on x86.) //@ignore-target-aarch64 //@ignore-target-arm //@ignore-target-avr