diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2015-03-24 15:45:11 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2015-03-30 05:02:20 -0400 |
| commit | c92bdcb232da3973a8a548e6b2044b610e286210 (patch) | |
| tree | b41dd1d636f8565c1cbc00ed775858b1cf9b628d /src | |
| parent | d6466ff13aef6af45f24f28e23f2f3dd36c96cf0 (diff) | |
| download | rust-c92bdcb232da3973a8a548e6b2044b610e286210.tar.gz rust-c92bdcb232da3973a8a548e6b2044b610e286210.zip | |
Fallout where types must be specified.
This is due to a [breaking-change] to operators. The primary affected code is uses of the `Rng` trait where we used to (incorrectly) infer the right-hand-side type from the left-hand-side, in the case that the LHS type was a scalar like `i32`. The fix is to add a type annotation like `x + rng.gen::<i32>()`.
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcollectionstest/bench.rs | 6 | ||||
| -rw-r--r-- | src/librand/distributions/mod.rs | 2 | ||||
| -rw-r--r-- | src/librand/distributions/range.rs | 2 | ||||
| -rw-r--r-- | src/test/auxiliary/lang-item-public.rs | 18 | ||||
| -rw-r--r-- | src/test/bench/noise.rs | 2 | ||||
| -rw-r--r-- | src/test/run-pass/dst-raw.rs | 4 | ||||
| -rw-r--r-- | src/test/run-pass/early-ret-binop-add.rs | 5 | ||||
| -rw-r--r-- | src/test/run-pass/issue-1460.rs | 2 | ||||
| -rw-r--r-- | src/test/run-pass/issue-16560.rs | 2 | ||||
| -rw-r--r-- | src/test/run-pass/issue-21634.rs | 6 | ||||
| -rw-r--r-- | src/test/run-pass/issue-8460.rs | 20 | ||||
| -rw-r--r-- | src/test/run-pass/reexported-static-methods-cross-crate.rs | 4 |
12 files changed, 47 insertions, 26 deletions
diff --git a/src/libcollectionstest/bench.rs b/src/libcollectionstest/bench.rs index e883b07dc5a..8f2e71b666c 100644 --- a/src/libcollectionstest/bench.rs +++ b/src/libcollectionstest/bench.rs @@ -22,13 +22,13 @@ macro_rules! map_insert_rand_bench { let mut rng = rand::weak_rng(); for _ in 0..n { - let i = rng.gen() % n; + let i = rng.gen::<usize>() % n; map.insert(i, i); } // measure b.iter(|| { - let k = rng.gen() % n; + let k = rng.gen::<usize>() % n; map.insert(k, k); map.remove(&k); }); @@ -77,7 +77,7 @@ macro_rules! map_find_rand_bench { // setup let mut rng = rand::weak_rng(); - let mut keys: Vec<_> = (0..n).map(|_| rng.gen() % n).collect(); + let mut keys: Vec<_> = (0..n).map(|_| rng.gen::<usize>() % n).collect(); for &k in &keys { map.insert(k, k); diff --git a/src/librand/distributions/mod.rs b/src/librand/distributions/mod.rs index cb0829f5245..62189e721e5 100644 --- a/src/librand/distributions/mod.rs +++ b/src/librand/distributions/mod.rs @@ -256,7 +256,7 @@ fn ziggurat<R: Rng, P, Z>( return zero_case(rng, u); } // algebraically equivalent to f1 + DRanU()*(f0 - f1) < 1 - if f_tab[i + 1] + (f_tab[i] - f_tab[i + 1]) * rng.gen() < pdf(x) { + if f_tab[i + 1] + (f_tab[i] - f_tab[i + 1]) * rng.gen::<f64>() < pdf(x) { return x; } } diff --git a/src/librand/distributions/range.rs b/src/librand/distributions/range.rs index 0f74e67f5a7..347d494259d 100644 --- a/src/librand/distributions/range.rs +++ b/src/librand/distributions/range.rs @@ -154,7 +154,7 @@ macro_rules! float_impl { } } fn sample_range<R: Rng>(r: &Range<$ty>, rng: &mut R) -> $ty { - r.low + r.range * rng.gen() + r.low + r.range * rng.gen::<$ty>() } } } diff --git a/src/test/auxiliary/lang-item-public.rs b/src/test/auxiliary/lang-item-public.rs index 3b4547e31f5..3c416dc2ef8 100644 --- a/src/test/auxiliary/lang-item-public.rs +++ b/src/test/auxiliary/lang-item-public.rs @@ -32,3 +32,21 @@ extern fn eh_personality() {} pub trait Copy : PhantomFn<Self> { // Empty. } + +#[lang="rem"] +pub trait Rem<RHS=Self> { + /// The resulting type after applying the `%` operator + #[stable(feature = "rust1", since = "1.0.0")] + type Output = Self; + + /// The method for the `%` operator + #[stable(feature = "rust1", since = "1.0.0")] + fn rem(self, rhs: RHS) -> Self::Output; +} + +impl Rem for i32 { + type Output = i32; + + #[inline] + fn rem(self, other: i32) -> i32 { self % other } +} diff --git a/src/test/bench/noise.rs b/src/test/bench/noise.rs index ff2428286d2..d6577036b8e 100644 --- a/src/test/bench/noise.rs +++ b/src/test/bench/noise.rs @@ -29,7 +29,7 @@ fn lerp(a: f32, b: f32, v: f32) -> f32 { a * (1.0 - v) + b * v } fn smooth(v: f32) -> f32 { v * v * (3.0 - 2.0 * v) } fn random_gradient<R: Rng>(r: &mut R) -> Vec2 { - let v = PI * 2.0 * r.gen(); + let v = PI * 2.0 * r.gen::<f32>(); Vec2 { x: v.cos(), y: v.sin() } } diff --git a/src/test/run-pass/dst-raw.rs b/src/test/run-pass/dst-raw.rs index c8f8218cc28..5e0e5bd03fe 100644 --- a/src/test/run-pass/dst-raw.rs +++ b/src/test/run-pass/dst-raw.rs @@ -56,7 +56,7 @@ pub fn main() { } // raw slice with explicit cast - let a = &[1, 2, 3] as *const [_]; + let a = &[1, 2, 3] as *const [i32]; unsafe { let b = (*a)[2]; assert!(b == 3); @@ -96,7 +96,7 @@ pub fn main() { assert!(len == 3); } - let a = &mut [1, 2, 3] as *mut [_]; + let a = &mut [1, 2, 3] as *mut [i32]; unsafe { let b = (*a)[2]; assert!(b == 3); diff --git a/src/test/run-pass/early-ret-binop-add.rs b/src/test/run-pass/early-ret-binop-add.rs index b01d6523bf0..7bd292e66f2 100644 --- a/src/test/run-pass/early-ret-binop-add.rs +++ b/src/test/run-pass/early-ret-binop-add.rs @@ -10,5 +10,8 @@ // pretty-expanded FIXME #23616 -fn wsucc(n: isize) -> isize { 0 + { return n + 1 } } +use std::num::Int; + +fn wsucc<T:Int>(n: T) -> T { n + { return n } } + pub fn main() { } diff --git a/src/test/run-pass/issue-1460.rs b/src/test/run-pass/issue-1460.rs index 6d2d02d2b8b..6e1cfc71862 100644 --- a/src/test/run-pass/issue-1460.rs +++ b/src/test/run-pass/issue-1460.rs @@ -12,5 +12,5 @@ // pretty-expanded FIXME #23616 pub fn main() { - {|i| if 1 == i { }}; + {|i: u32| if 1 == i { }}; } diff --git a/src/test/run-pass/issue-16560.rs b/src/test/run-pass/issue-16560.rs index 15a5080f5a2..33842fab698 100644 --- a/src/test/run-pass/issue-16560.rs +++ b/src/test/run-pass/issue-16560.rs @@ -17,7 +17,7 @@ use std::mem; fn main() { let y = 0u8; - let closure = move |x| y + x; + let closure = move |x: u8| y + x; // Check that both closures are capturing by value assert_eq!(1, mem::size_of_val(&closure)); diff --git a/src/test/run-pass/issue-21634.rs b/src/test/run-pass/issue-21634.rs index 53297d0a8f3..fe540e1aabe 100644 --- a/src/test/run-pass/issue-21634.rs +++ b/src/test/run-pass/issue-21634.rs @@ -12,13 +12,13 @@ // pretty-expanded FIXME #23616 fn main() { - if let Ok(x) = "3.1415".parse() { + if let Ok(x) = "3.1415".parse::<f64>() { assert_eq!(false, x <= 0.0); } - if let Ok(x) = "3.1415".parse() { + if let Ok(x) = "3.1415".parse::<f64>() { assert_eq!(3.1415, x + 0.0); } - if let Ok(mut x) = "3.1415".parse() { + if let Ok(mut x) = "3.1415".parse::<f64>() { assert_eq!(8.1415, { x += 5.0; x }); } } diff --git a/src/test/run-pass/issue-8460.rs b/src/test/run-pass/issue-8460.rs index 0ef668794ec..7d8c4ab210d 100644 --- a/src/test/run-pass/issue-8460.rs +++ b/src/test/run-pass/issue-8460.rs @@ -25,19 +25,19 @@ fn main() { assert!(thread::spawn(move|| { min_val::<i16>() / -1; }).join().is_err()); assert!(thread::spawn(move|| { min_val::<i32>() / -1; }).join().is_err()); assert!(thread::spawn(move|| { min_val::<i64>() / -1; }).join().is_err()); - assert!(thread::spawn(move|| { 1isize / zero(); }).join().is_err()); - assert!(thread::spawn(move|| { 1i8 / zero(); }).join().is_err()); - assert!(thread::spawn(move|| { 1i16 / zero(); }).join().is_err()); - assert!(thread::spawn(move|| { 1i32 / zero(); }).join().is_err()); - assert!(thread::spawn(move|| { 1i64 / zero(); }).join().is_err()); + assert!(thread::spawn(move|| { 1isize / zero::<isize>(); }).join().is_err()); + assert!(thread::spawn(move|| { 1i8 / zero::<i8>(); }).join().is_err()); + assert!(thread::spawn(move|| { 1i16 / zero::<i16>(); }).join().is_err()); + assert!(thread::spawn(move|| { 1i32 / zero::<i32>(); }).join().is_err()); + assert!(thread::spawn(move|| { 1i64 / zero::<i64>(); }).join().is_err()); assert!(thread::spawn(move|| { min_val::<isize>() % -1; }).join().is_err()); assert!(thread::spawn(move|| { min_val::<i8>() % -1; }).join().is_err()); assert!(thread::spawn(move|| { min_val::<i16>() % -1; }).join().is_err()); assert!(thread::spawn(move|| { min_val::<i32>() % -1; }).join().is_err()); assert!(thread::spawn(move|| { min_val::<i64>() % -1; }).join().is_err()); - assert!(thread::spawn(move|| { 1isize % zero(); }).join().is_err()); - assert!(thread::spawn(move|| { 1i8 % zero(); }).join().is_err()); - assert!(thread::spawn(move|| { 1i16 % zero(); }).join().is_err()); - assert!(thread::spawn(move|| { 1i32 % zero(); }).join().is_err()); - assert!(thread::spawn(move|| { 1i64 % zero(); }).join().is_err()); + assert!(thread::spawn(move|| { 1isize % zero::<isize>(); }).join().is_err()); + assert!(thread::spawn(move|| { 1i8 % zero::<i8>(); }).join().is_err()); + assert!(thread::spawn(move|| { 1i16 % zero::<i16>(); }).join().is_err()); + assert!(thread::spawn(move|| { 1i32 % zero::<i32>(); }).join().is_err()); + assert!(thread::spawn(move|| { 1i64 % zero::<i64>(); }).join().is_err()); } diff --git a/src/test/run-pass/reexported-static-methods-cross-crate.rs b/src/test/run-pass/reexported-static-methods-cross-crate.rs index 374d0d8d9b9..3efd913cf54 100644 --- a/src/test/run-pass/reexported-static-methods-cross-crate.rs +++ b/src/test/run-pass/reexported-static-methods-cross-crate.rs @@ -19,8 +19,8 @@ use reexported_static_methods::Boz; use reexported_static_methods::Bort; pub fn main() { - assert_eq!(42, Foo::foo()); - assert_eq!(84, Baz::bar()); + assert_eq!(42_isize, Foo::foo()); + assert_eq!(84_isize, Baz::bar()); assert!(Boz::boz(1)); assert_eq!("bort()".to_string(), Bort::bort()); } |
