Skip to content

Commit 0231d4b

Browse files
committed
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>()`.
1 parent 1b975b8 commit 0231d4b

File tree

12 files changed

+29
-26
lines changed

12 files changed

+29
-26
lines changed

src/libcollectionstest/bench.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ macro_rules! map_insert_rand_bench {
2222
let mut rng = rand::weak_rng();
2323

2424
for _ in 0..n {
25-
let i = rng.gen() % n;
25+
let i = rng.gen::<usize>() % n;
2626
map.insert(i, i);
2727
}
2828

2929
// measure
3030
b.iter(|| {
31-
let k = rng.gen() % n;
31+
let k = rng.gen::<usize>() % n;
3232
map.insert(k, k);
3333
map.remove(&k);
3434
});
@@ -77,7 +77,7 @@ macro_rules! map_find_rand_bench {
7777

7878
// setup
7979
let mut rng = rand::weak_rng();
80-
let mut keys: Vec<_> = (0..n).map(|_| rng.gen() % n).collect();
80+
let mut keys: Vec<_> = (0..n).map(|_| rng.gen::<usize>() % n).collect();
8181

8282
for &k in &keys {
8383
map.insert(k, k);

src/librand/distributions/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ fn ziggurat<R: Rng, P, Z>(
256256
return zero_case(rng, u);
257257
}
258258
// algebraically equivalent to f1 + DRanU()*(f0 - f1) < 1
259-
if f_tab[i + 1] + (f_tab[i] - f_tab[i + 1]) * rng.gen() < pdf(x) {
259+
if f_tab[i + 1] + (f_tab[i] - f_tab[i + 1]) * rng.gen::<f64>() < pdf(x) {
260260
return x;
261261
}
262262
}

src/librand/distributions/range.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ macro_rules! float_impl {
154154
}
155155
}
156156
fn sample_range<R: Rng>(r: &Range<$ty>, rng: &mut R) -> $ty {
157-
r.low + r.range * rng.gen()
157+
r.low + r.range * rng.gen::<$ty>()
158158
}
159159
}
160160
}

src/test/bench/noise.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ fn lerp(a: f32, b: f32, v: f32) -> f32 { a * (1.0 - v) + b * v }
2929
fn smooth(v: f32) -> f32 { v * v * (3.0 - 2.0 * v) }
3030

3131
fn random_gradient<R: Rng>(r: &mut R) -> Vec2 {
32-
let v = PI * 2.0 * r.gen();
32+
let v = PI * 2.0 * r.gen::<f32>();
3333
Vec2 { x: v.cos(), y: v.sin() }
3434
}
3535

src/test/run-pass/early-ret-binop-add.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,8 @@
1010

1111
// pretty-expanded FIXME #23616
1212

13-
fn wsucc(n: int) -> int { 0 + { return n + 1 } }
13+
use std::num::Int;
14+
15+
fn wsucc<T:Int>(n: T) -> T { n + { return n } }
16+
1417
pub fn main() { }

src/test/run-pass/issue-1460.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
// pretty-expanded FIXME #23616
1313

1414
pub fn main() {
15-
{|i| if 1 == i { }};
15+
{|i: u32| if 1 == i { }};
1616
}

src/test/run-pass/issue-16560.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use std::mem;
1717

1818
fn main() {
1919
let y = 0u8;
20-
let closure = move |x| y + x;
20+
let closure = move |x: u8| y + x;
2121

2222
// Check that both closures are capturing by value
2323
assert_eq!(1, mem::size_of_val(&closure));

src/test/run-pass/issue-21634.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
// pretty-expanded FIXME #23616
1313

1414
fn main() {
15-
if let Ok(x) = "3.1415".parse() {
15+
if let Ok(x) = "3.1415".parse::<f64>() {
1616
assert_eq!(false, x <= 0.0);
1717
}
18-
if let Ok(x) = "3.1415".parse() {
18+
if let Ok(x) = "3.1415".parse::<f64>() {
1919
assert_eq!(3.1415, x + 0.0);
2020
}
21-
if let Ok(mut x) = "3.1415".parse() {
21+
if let Ok(mut x) = "3.1415".parse::<f64>() {
2222
assert_eq!(8.1415, { x += 5.0; x });
2323
}
2424
}

src/test/run-pass/issue-8460.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@ fn main() {
2525
assert!(thread::spawn(move|| { min_val::<i16>() / -1; }).join().is_err());
2626
assert!(thread::spawn(move|| { min_val::<i32>() / -1; }).join().is_err());
2727
assert!(thread::spawn(move|| { min_val::<i64>() / -1; }).join().is_err());
28-
assert!(thread::spawn(move|| { 1isize / zero(); }).join().is_err());
29-
assert!(thread::spawn(move|| { 1i8 / zero(); }).join().is_err());
30-
assert!(thread::spawn(move|| { 1i16 / zero(); }).join().is_err());
31-
assert!(thread::spawn(move|| { 1i32 / zero(); }).join().is_err());
32-
assert!(thread::spawn(move|| { 1i64 / zero(); }).join().is_err());
28+
assert!(thread::spawn(move|| { 1isize / zero::<isize>(); }).join().is_err());
29+
assert!(thread::spawn(move|| { 1i8 / zero::<i8>(); }).join().is_err());
30+
assert!(thread::spawn(move|| { 1i16 / zero::<i16>(); }).join().is_err());
31+
assert!(thread::spawn(move|| { 1i32 / zero::<i32>(); }).join().is_err());
32+
assert!(thread::spawn(move|| { 1i64 / zero::<i64>(); }).join().is_err());
3333
assert!(thread::spawn(move|| { min_val::<isize>() % -1; }).join().is_err());
3434
assert!(thread::spawn(move|| { min_val::<i8>() % -1; }).join().is_err());
3535
assert!(thread::spawn(move|| { min_val::<i16>() % -1; }).join().is_err());
3636
assert!(thread::spawn(move|| { min_val::<i32>() % -1; }).join().is_err());
3737
assert!(thread::spawn(move|| { min_val::<i64>() % -1; }).join().is_err());
38-
assert!(thread::spawn(move|| { 1isize % zero(); }).join().is_err());
39-
assert!(thread::spawn(move|| { 1i8 % zero(); }).join().is_err());
40-
assert!(thread::spawn(move|| { 1i16 % zero(); }).join().is_err());
41-
assert!(thread::spawn(move|| { 1i32 % zero(); }).join().is_err());
42-
assert!(thread::spawn(move|| { 1i64 % zero(); }).join().is_err());
38+
assert!(thread::spawn(move|| { 1isize % zero::<isize>(); }).join().is_err());
39+
assert!(thread::spawn(move|| { 1i8 % zero::<i8>(); }).join().is_err());
40+
assert!(thread::spawn(move|| { 1i16 % zero::<i16>(); }).join().is_err());
41+
assert!(thread::spawn(move|| { 1i32 % zero::<i32>(); }).join().is_err());
42+
assert!(thread::spawn(move|| { 1i64 % zero::<i64>(); }).join().is_err());
4343
}

src/test/run-pass/lang-item-public.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,5 @@ extern {}
4646

4747
#[start]
4848
fn main(_: int, _: *const *const u8) -> int {
49-
1 % 1
49+
0
5050
}

src/test/run-pass/nullable-pointer-iotareduction.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ pub fn main() {
8080
check_type!(box 18, Box<int>);
8181
check_type!("foo".to_string(), String);
8282
check_type!(vec!(20, 22), Vec<int> );
83-
let mint: uint = unsafe { mem::transmute(main) };
83+
let mint: usize = unsafe { mem::transmute(main) };
8484
check_type!(main, fn(), |pthing| {
8585
assert!(mint == unsafe { mem::transmute(*pthing) })
8686
});

src/test/run-pass/reexported-static-methods-cross-crate.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ use reexported_static_methods::Boz;
1919
use reexported_static_methods::Bort;
2020

2121
pub fn main() {
22-
assert_eq!(42, Foo::foo());
23-
assert_eq!(84, Baz::bar());
22+
assert_eq!(42_isize, Foo::foo());
23+
assert_eq!(84_isize, Baz::bar());
2424
assert!(Boz::boz(1));
2525
assert_eq!("bort()".to_string(), Bort::bort());
2626
}

0 commit comments

Comments
 (0)