Skip to content

Commit

Permalink
Remove the last remnant of unsigned Neg
Browse files Browse the repository at this point in the history
It's been gone since #23945, before Rust 1.0. The former wrapping
semantics have also been available as inherent methods for a long time
now. There's no reason to keep this unused macro around.
  • Loading branch information
cuviper committed Apr 14, 2020
1 parent 8e18e26 commit 9ede5b0
Showing 1 changed file with 4 additions and 17 deletions.
21 changes: 4 additions & 17 deletions src/libcore/ops/arith.rs
Expand Up @@ -617,35 +617,22 @@ pub trait Neg {
fn neg(self) -> Self::Output;
}

macro_rules! neg_impl_core {
($id:ident => $body:expr, $($t:ty)*) => ($(
macro_rules! neg_impl {
($($t:ty)*) => ($(
#[stable(feature = "rust1", since = "1.0.0")]
impl Neg for $t {
type Output = $t;

#[inline]
#[rustc_inherit_overflow_checks]
fn neg(self) -> $t { let $id = self; $body }
fn neg(self) -> $t { -self }
}

forward_ref_unop! { impl Neg, neg for $t }
)*)
}

macro_rules! neg_impl_numeric {
($($t:ty)*) => { neg_impl_core!{ x => -x, $($t)*} }
}

#[allow(unused_macros)]
macro_rules! neg_impl_unsigned {
($($t:ty)*) => {
neg_impl_core!{ x => {
!x.wrapping_add(1)
}, $($t)*} }
}

// neg_impl_unsigned! { usize u8 u16 u32 u64 }
neg_impl_numeric! { isize i8 i16 i32 i64 i128 f32 f64 }
neg_impl! { isize i8 i16 i32 i64 i128 f32 f64 }

/// The addition assignment operator `+=`.
///
Expand Down

0 comments on commit 9ede5b0

Please sign in to comment.