[INFO] updating cached repository kojole/benchmark-concurrent-increments-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/kojole/benchmark-concurrent-increments-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/kojole/benchmark-concurrent-increments-rs" "work/ex/clippy-test-run/sources/stable/gh/kojole/benchmark-concurrent-increments-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/kojole/benchmark-concurrent-increments-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/kojole/benchmark-concurrent-increments-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kojole/benchmark-concurrent-increments-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kojole/benchmark-concurrent-increments-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 97f350e7b72bf57338883c7efea1a2f1bfca3a22 [INFO] sha for GitHub repo kojole/benchmark-concurrent-increments-rs: 97f350e7b72bf57338883c7efea1a2f1bfca3a22 [INFO] validating manifest of kojole/benchmark-concurrent-increments-rs on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of kojole/benchmark-concurrent-increments-rs on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing kojole/benchmark-concurrent-increments-rs [INFO] finished frobbing kojole/benchmark-concurrent-increments-rs [INFO] frobbed toml for kojole/benchmark-concurrent-increments-rs written to work/ex/clippy-test-run/sources/stable/gh/kojole/benchmark-concurrent-increments-rs/Cargo.toml [INFO] started frobbing kojole/benchmark-concurrent-increments-rs [INFO] finished frobbing kojole/benchmark-concurrent-increments-rs [INFO] frobbed toml for kojole/benchmark-concurrent-increments-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kojole/benchmark-concurrent-increments-rs/Cargo.toml [INFO] crate kojole/benchmark-concurrent-increments-rs has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting kojole/benchmark-concurrent-increments-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/kojole/benchmark-concurrent-increments-rs:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 70c2cac5b1932d133a4d565b45773f5f50ad54505c0aaf312a8af429af973d69 [INFO] running `"docker" "start" "-a" "70c2cac5b1932d133a4d565b45773f5f50ad54505c0aaf312a8af429af973d69"` [INFO] [stderr] Checking crossbeam-utils v0.4.0 [INFO] [stderr] Checking crossbeam-utils v0.3.2 [INFO] [stderr] Checking lock_api v0.1.1 [INFO] [stderr] Checking crossbeam-epoch v0.4.3 [INFO] [stderr] Checking parking_lot v0.6.1 [INFO] [stderr] Checking crossbeam-channel v0.2.1 [INFO] [stderr] Checking coninc v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/mutex.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/mutex.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | let v = *value.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/mutex.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/mutex.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | let v = *value.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/pl_mutex.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/pl_mutex.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | let v = *value.lock(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/pl_mutex.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/pl_mutex.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | let v = *value.lock(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/pl_rwlock.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/pl_rwlock.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | let v = *value.read(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/rwlock.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/rwlock.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | let v = *value.read().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/pl_rwlock.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/pl_rwlock.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | let v = *value.read(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/rwlock.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/rwlock.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | let v = *value.read().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/cchannel_lock.rs:65:69 [INFO] [stderr] | [INFO] [stderr] 65 | req.res_tx.as_ref().unwrap().send(Sendable::new(&mut value)); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/cchannel_lock.rs:75:47 [INFO] [stderr] | [INFO] [stderr] 75 | req_tx.send(Sendable::new(&mut value)); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/channel_lock.rs:67:45 [INFO] [stderr] | [INFO] [stderr] 67 | .send(Sendable::new(&mut value)) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/channel_lock.rs:78:47 [INFO] [stderr] | [INFO] [stderr] 78 | req_tx.send(Sendable::new(&mut value)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/mutex.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | let value = Arc::new(Mutex::new(0usize)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/cchannel_lock.rs:65:69 [INFO] [stderr] | [INFO] [stderr] 65 | req.res_tx.as_ref().unwrap().send(Sendable::new(&mut value)); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/cchannel_lock.rs:75:47 [INFO] [stderr] | [INFO] [stderr] 75 | req_tx.send(Sendable::new(&mut value)); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/channel_lock.rs:67:45 [INFO] [stderr] | [INFO] [stderr] 67 | .send(Sendable::new(&mut value)) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/channel_lock.rs:78:47 [INFO] [stderr] | [INFO] [stderr] 78 | req_tx.send(Sendable::new(&mut value)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/mutex.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | let value = Arc::new(Mutex::new(0usize)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:9:15 [INFO] [stderr] | [INFO] [stderr] 9 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | elapsed.as_secs() as f64 + elapsed.subsec_nanos() as f64 / 1e9 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(elapsed.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:9:15 [INFO] [stderr] | [INFO] [stderr] 9 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | elapsed.as_secs() as f64 + elapsed.subsec_nanos() as f64 / 1e9 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(elapsed.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 6.29s [INFO] running `"docker" "inspect" "70c2cac5b1932d133a4d565b45773f5f50ad54505c0aaf312a8af429af973d69"` [INFO] running `"docker" "rm" "-f" "70c2cac5b1932d133a4d565b45773f5f50ad54505c0aaf312a8af429af973d69"` [INFO] [stdout] 70c2cac5b1932d133a4d565b45773f5f50ad54505c0aaf312a8af429af973d69