[INFO] updating cached repository dlin94/CSAPP-Rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/dlin94/CSAPP-Rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/dlin94/CSAPP-Rust" "work/ex/clippy-test-run/sources/stable/gh/dlin94/CSAPP-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/dlin94/CSAPP-Rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/dlin94/CSAPP-Rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dlin94/CSAPP-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dlin94/CSAPP-Rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 1e421ca826c51fe665f53136412a0cfe7d2c0a4b [INFO] sha for GitHub repo dlin94/CSAPP-Rust: 1e421ca826c51fe665f53136412a0cfe7d2c0a4b [INFO] validating manifest of dlin94/CSAPP-Rust 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 dlin94/CSAPP-Rust 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 dlin94/CSAPP-Rust [INFO] finished frobbing dlin94/CSAPP-Rust [INFO] frobbed toml for dlin94/CSAPP-Rust written to work/ex/clippy-test-run/sources/stable/gh/dlin94/CSAPP-Rust/Cargo.toml [INFO] started frobbing dlin94/CSAPP-Rust [INFO] finished frobbing dlin94/CSAPP-Rust [INFO] frobbed toml for dlin94/CSAPP-Rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dlin94/CSAPP-Rust/Cargo.toml [INFO] crate dlin94/CSAPP-Rust 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 dlin94/CSAPP-Rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/dlin94/CSAPP-Rust:/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] d7b949abca6f725534f1c7bb92189e2ffe1a77ce636baf8a56b997c61c42a3e6 [INFO] running `"docker" "start" "-a" "d7b949abca6f725534f1c7bb92189e2ffe1a77ce636baf8a56b997c61c42a3e6"` [INFO] [stderr] Checking csapp v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ch2/overflow.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | return x != 0 || p/x == y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `x != 0 || p/x == y` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: function is never used: `unsigned_decrement_infinite_loop` [INFO] [stderr] --> src/ch2/overflow.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn unsigned_decrement_infinite_loop() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `uadd_ok` [INFO] [stderr] --> src/ch2/overflow.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn uadd_ok(x: u32, y: u32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tadd_ok` [INFO] [stderr] --> src/ch2/overflow.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn tadd_ok(x: i32, y: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tsub_ok` [INFO] [stderr] --> src/ch2/overflow.rs:66:1 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn tsub_ok(x: i32, y: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tmult_ok` [INFO] [stderr] --> src/ch2/overflow.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn tmult_ok(x: i32, y: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tmult_ok_using_64_bit` [INFO] [stderr] --> src/ch2/overflow.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn tmult_ok_using_64_bit(x: i32, y: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `odd_ones` [INFO] [stderr] --> src/ch2/bit_mask.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn odd_ones(x: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `leftmost_one` [INFO] [stderr] --> src/ch2/bit_mask.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn leftmost_one(x: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotate_left` [INFO] [stderr] --> src/ch2/bit_mask.rs:82:1 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn rotate_left(x: u32, n: i32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/ch2/overflow.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | while i >= 0 { // Infinite loop! [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_comparisons)] on by default [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/ch2/overflow.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | while i >= 0 { // Infinite loop! [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, this comparison is always true [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/ch2/overflow.rs:54:26 [INFO] [stderr] | [INFO] [stderr] 54 | let overflow: bool = ((x < 0 && y < 0) && sum >= 0) || [INFO] [stderr] | __________________________^ [INFO] [stderr] 55 | | ((x > 0 && y > 0) && sum < 0); [INFO] [stderr] | |_____________________________________^ help: try: `x < 0 && y < 0 && sum >= 0 || x > 0 && y > 0 && sum < 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/ch2/overflow.rs:73:26 [INFO] [stderr] | [INFO] [stderr] 73 | let overflow: bool = ((x > 0 && y < 0) && diff < 0) || [INFO] [stderr] | __________________________^ [INFO] [stderr] 74 | | ((x < 0 && y > 0) && diff >= 0); [INFO] [stderr] | |_______________________________________^ help: try: `x > 0 && y < 0 && diff < 0 || x < 0 && y > 0 && diff >= 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/ch2/overflow.rs:104:18 [INFO] [stderr] | [INFO] [stderr] 104 | let x: i64 = x as i64 * y as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(x)` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/ch2/overflow.rs:104:29 [INFO] [stderr] | [INFO] [stderr] 104 | let x: i64 = x as i64 * y as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `csapp`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ch2/overflow.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | return x != 0 || p/x == y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `x != 0 || p/x == y` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: function is never used: `unsigned_decrement_infinite_loop` [INFO] [stderr] --> src/ch2/overflow.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn unsigned_decrement_infinite_loop() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `uadd_ok` [INFO] [stderr] --> src/ch2/overflow.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn uadd_ok(x: u32, y: u32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tadd_ok` [INFO] [stderr] --> src/ch2/overflow.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn tadd_ok(x: i32, y: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tsub_ok` [INFO] [stderr] --> src/ch2/overflow.rs:66:1 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn tsub_ok(x: i32, y: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tmult_ok` [INFO] [stderr] --> src/ch2/overflow.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn tmult_ok(x: i32, y: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tmult_ok_using_64_bit` [INFO] [stderr] --> src/ch2/overflow.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn tmult_ok_using_64_bit(x: i32, y: i32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `odd_ones` [INFO] [stderr] --> src/ch2/bit_mask.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn odd_ones(x: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `leftmost_one` [INFO] [stderr] --> src/ch2/bit_mask.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn leftmost_one(x: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotate_left` [INFO] [stderr] --> src/ch2/bit_mask.rs:82:1 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn rotate_left(x: u32, n: i32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/ch2/overflow.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | while i >= 0 { // Infinite loop! [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_comparisons)] on by default [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/ch2/overflow.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | while i >= 0 { // Infinite loop! [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, this comparison is always true [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/ch2/overflow.rs:54:26 [INFO] [stderr] | [INFO] [stderr] 54 | let overflow: bool = ((x < 0 && y < 0) && sum >= 0) || [INFO] [stderr] | __________________________^ [INFO] [stderr] 55 | | ((x > 0 && y > 0) && sum < 0); [INFO] [stderr] | |_____________________________________^ help: try: `x < 0 && y < 0 && sum >= 0 || x > 0 && y > 0 && sum < 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/ch2/overflow.rs:73:26 [INFO] [stderr] | [INFO] [stderr] 73 | let overflow: bool = ((x > 0 && y < 0) && diff < 0) || [INFO] [stderr] | __________________________^ [INFO] [stderr] 74 | | ((x < 0 && y > 0) && diff >= 0); [INFO] [stderr] | |_______________________________________^ help: try: `x > 0 && y < 0 && diff < 0 || x < 0 && y > 0 && diff >= 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/ch2/overflow.rs:104:18 [INFO] [stderr] | [INFO] [stderr] 104 | let x: i64 = x as i64 * y as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(x)` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/ch2/overflow.rs:104:29 [INFO] [stderr] | [INFO] [stderr] 104 | let x: i64 = x as i64 * y as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `csapp`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "d7b949abca6f725534f1c7bb92189e2ffe1a77ce636baf8a56b997c61c42a3e6"` [INFO] running `"docker" "rm" "-f" "d7b949abca6f725534f1c7bb92189e2ffe1a77ce636baf8a56b997c61c42a3e6"` [INFO] [stdout] d7b949abca6f725534f1c7bb92189e2ffe1a77ce636baf8a56b997c61c42a3e6