Skip to content

Commit

Permalink
Change Shl<T, T> for Int to Shl<uint, T>
Browse files Browse the repository at this point in the history
  • Loading branch information
sneves committed Jul 4, 2014
1 parent d623a8b commit 7b7d23c
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 17 deletions.
16 changes: 8 additions & 8 deletions src/libcore/num/mod.rs
Expand Up @@ -400,8 +400,8 @@ pub trait Int: Primitive
+ BitAnd<Self,Self>
+ BitOr<Self,Self>
+ BitXor<Self,Self>
+ Shl<Self,Self>
+ Shr<Self,Self> {
+ Shl<uint,Self>
+ Shr<uint,Self> {
/// Returns the number of ones in the binary representation of the integer.
///
/// # Example
Expand Down Expand Up @@ -667,12 +667,12 @@ int_cast_impl!(i64, u64)
/// Returns the smallest power of 2 greater than or equal to `n`.
#[inline]
pub fn next_power_of_two<T: Unsigned + Int>(n: T) -> T {
let halfbits: T = cast(size_of::<T>() * 4).unwrap();
let halfbits = size_of::<T>() * 4;
let mut tmp: T = n - one();
let mut shift: T = one();
let mut shift = 1u;
while shift <= halfbits {
tmp = tmp | (tmp >> shift);
shift = shift << one();
shift = shift << 1u;
}
tmp + one()
}
Expand All @@ -688,12 +688,12 @@ pub fn is_power_of_two<T: Unsigned + Int>(n: T) -> bool {
/// otherwise the power of 2 is wrapped in `Some`.
#[inline]
pub fn checked_next_power_of_two<T: Unsigned + Int>(n: T) -> Option<T> {
let halfbits: T = cast(size_of::<T>() * 4).unwrap();
let halfbits = size_of::<T>() * 4;
let mut tmp: T = n - one();
let mut shift: T = one();
let mut shift = 1u;
while shift <= halfbits {
tmp = tmp | (tmp >> shift);
shift = shift << one();
shift = shift << 1u;
}
tmp.checked_add(&one())
}
Expand Down
10 changes: 5 additions & 5 deletions src/libcore/ops.rs
Expand Up @@ -558,10 +558,10 @@ pub trait Shl<RHS,Result> {

macro_rules! shl_impl(
($($t:ty)*) => ($(
impl Shl<$t, $t> for $t {
impl Shl<uint, $t> for $t {
#[inline]
fn shl(&self, other: &$t) -> $t {
(*self) << (*other as uint)
fn shl(&self, other: &uint) -> $t {
(*self) << (*other)
}
}
)*)
Expand Down Expand Up @@ -601,9 +601,9 @@ pub trait Shr<RHS,Result> {

macro_rules! shr_impl(
($($t:ty)*) => ($(
impl Shr<$t, $t> for $t {
impl Shr<uint, $t> for $t {
#[inline]
fn shr(&self, other: &$t) -> $t { (*self) >> (*other as uint) }
fn shr(&self, other: &uint) -> $t { (*self) >> (*other) }
}
)*)
)
Expand Down
4 changes: 2 additions & 2 deletions src/libcoretest/num/int_macros.rs
Expand Up @@ -74,8 +74,8 @@ mod tests {
assert!(0b1110 as $T == (0b1100 as $T).bitor(&(0b1010 as $T)));
assert!(0b1000 as $T == (0b1100 as $T).bitand(&(0b1010 as $T)));
assert!(0b0110 as $T == (0b1100 as $T).bitxor(&(0b1010 as $T)));
assert!(0b1110 as $T == (0b0111 as $T).shl(&(1 as $T)));
assert!(0b0111 as $T == (0b1110 as $T).shr(&(1 as $T)));
assert!(0b1110 as $T == (0b0111 as $T).shl(&1));
assert!(0b0111 as $T == (0b1110 as $T).shr(&1));
assert!(-(0b11 as $T) - (1 as $T) == (0b11 as $T).not());
}

Expand Down
4 changes: 2 additions & 2 deletions src/libcoretest/num/uint_macros.rs
Expand Up @@ -34,8 +34,8 @@ mod tests {
assert!(0b1110 as $T == (0b1100 as $T).bitor(&(0b1010 as $T)));
assert!(0b1000 as $T == (0b1100 as $T).bitand(&(0b1010 as $T)));
assert!(0b0110 as $T == (0b1100 as $T).bitxor(&(0b1010 as $T)));
assert!(0b1110 as $T == (0b0111 as $T).shl(&(1 as $T)));
assert!(0b0111 as $T == (0b1110 as $T).shr(&(1 as $T)));
assert!(0b1110 as $T == (0b0111 as $T).shl(&1u));
assert!(0b0111 as $T == (0b1110 as $T).shr(&1u));
assert!(MAX - (0b1011 as $T) == (0b1011 as $T).not());
}

Expand Down

5 comments on commit 7b7d23c

@bors
Copy link
Contributor

@bors bors commented on 7b7d23c Jul 24, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bors
Copy link
Contributor

@bors bors commented on 7b7d23c Jul 24, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging sneves/rust/master = 7b7d23c into auto

@bors
Copy link
Contributor

@bors bors commented on 7b7d23c Jul 24, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sneves/rust/master = 7b7d23c merged ok, testing candidate = 2224edc

@bors
Copy link
Contributor

@bors bors commented on 7b7d23c Jul 24, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fast-forwarding master to auto = 2224edc

Please sign in to comment.