[INFO] updating cached repository npfund/synacorchallenge [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/npfund/synacorchallenge [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/npfund/synacorchallenge" "work/ex/clippy-test-run/sources/stable/gh/npfund/synacorchallenge"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/npfund/synacorchallenge'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/npfund/synacorchallenge" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/npfund/synacorchallenge"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/npfund/synacorchallenge'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 4efedfe352a5276b56866c29f02d205ba6959965 [INFO] sha for GitHub repo npfund/synacorchallenge: 4efedfe352a5276b56866c29f02d205ba6959965 [INFO] validating manifest of npfund/synacorchallenge 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 npfund/synacorchallenge 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 npfund/synacorchallenge [INFO] finished frobbing npfund/synacorchallenge [INFO] frobbed toml for npfund/synacorchallenge written to work/ex/clippy-test-run/sources/stable/gh/npfund/synacorchallenge/Cargo.toml [INFO] started frobbing npfund/synacorchallenge [INFO] finished frobbing npfund/synacorchallenge [INFO] frobbed toml for npfund/synacorchallenge written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/npfund/synacorchallenge/Cargo.toml [INFO] crate npfund/synacorchallenge 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 npfund/synacorchallenge against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/npfund/synacorchallenge:/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] ec5e1018ef35f7589859ca23aac53cc8a4b7daf3c97298ddb8528c678319c004 [INFO] running `"docker" "start" "-a" "ec5e1018ef35f7589859ca23aac53cc8a4b7daf3c97298ddb8528c678319c004"` [INFO] [stderr] Checking synacor v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:56:88 [INFO] [stderr] | [INFO] [stderr] 56 | println!("{}: Set register {} to {}", index, bytes[index + 1], 1); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:61:88 [INFO] [stderr] | [INFO] [stderr] 61 | println!("{}: Set register {} to {}", index, bytes[index + 1], 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:76:88 [INFO] [stderr] | [INFO] [stderr] 76 | println!("{}: Set register {} to {}", index, bytes[index + 1], 1); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:81:88 [INFO] [stderr] | [INFO] [stderr] 81 | println!("{}: Set register {} to {}", index, bytes[index + 1], 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:56:88 [INFO] [stderr] | [INFO] [stderr] 56 | println!("{}: Set register {} to {}", index, bytes[index + 1], 1); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:61:88 [INFO] [stderr] | [INFO] [stderr] 61 | println!("{}: Set register {} to {}", index, bytes[index + 1], 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:76:88 [INFO] [stderr] | [INFO] [stderr] 76 | println!("{}: Set register {} to {}", index, bytes[index + 1], 1); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:81:88 [INFO] [stderr] | [INFO] [stderr] 81 | println!("{}: Set register {} to {}", index, bytes[index + 1], 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | / return Machine { [INFO] [stderr] 9 | | registers: [0u16; 8], [INFO] [stderr] 10 | | stack: Vec::new(), [INFO] [stderr] 11 | | }; [INFO] [stderr] | |__________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 8 | Machine { [INFO] [stderr] 9 | registers: [0u16; 8], [INFO] [stderr] 10 | stack: Vec::new(), [INFO] [stderr] 11 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | return self.get_register(input as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_register(input as usize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | return input; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | return self.registers[input % 32768]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.registers[input % 32768]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | return self.stack.pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.stack.pop().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:289:5 [INFO] [stderr] | [INFO] [stderr] 289 | return bytes; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `bytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | / return Machine { [INFO] [stderr] 9 | | registers: [0u16; 8], [INFO] [stderr] 10 | | stack: Vec::new(), [INFO] [stderr] 11 | | }; [INFO] [stderr] | |__________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 8 | Machine { [INFO] [stderr] 9 | registers: [0u16; 8], [INFO] [stderr] 10 | stack: Vec::new(), [INFO] [stderr] 11 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | return self.get_register(input as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_register(input as usize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | return input; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | return self.registers[input % 32768]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.registers[input % 32768]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | return self.stack.pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.stack.pop().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:289:5 [INFO] [stderr] | [INFO] [stderr] 289 | return bytes; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `bytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 39 [INFO] [stderr] --> src/main.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / fn main() { [INFO] [stderr] 11 | | let debug = false; [INFO] [stderr] 12 | | let mut machine = Machine::new(); [INFO] [stderr] 13 | | let mut bytes = read_file("src/challenge.bin"); [INFO] [stderr] ... | [INFO] [stderr] 276 | | } [INFO] [stderr] 277 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 39 [INFO] [stderr] --> src/main.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / fn main() { [INFO] [stderr] 11 | | let debug = false; [INFO] [stderr] 12 | | let mut machine = Machine::new(); [INFO] [stderr] 13 | | let mut bytes = read_file("src/challenge.bin"); [INFO] [stderr] ... | [INFO] [stderr] 276 | | } [INFO] [stderr] 277 | | } [INFO] [stderr] | |_^ [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:135:22 [INFO] [stderr] | [INFO] [stderr] 135 | (machine.r_or_i(bytes[index + 2]) as u32 * [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(machine.r_or_i(bytes[index + 2]))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:136:22 [INFO] [stderr] | [INFO] [stderr] 136 | machine.r_or_i(bytes[index + 3]) as u32) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(machine.r_or_i(bytes[index + 3]))` [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] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:230:44 [INFO] [stderr] | [INFO] [stderr] 230 | let value = char::from_u32(machine.r_or_i(bytes[index + 1]) as u32).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(machine.r_or_i(bytes[index + 1]))` [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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:285:22 [INFO] [stderr] | [INFO] [stderr] 285 | let value = ((buffer[1] as u16) << 8) | buffer[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buffer[1])` [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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:285:49 [INFO] [stderr] | [INFO] [stderr] 285 | let value = ((buffer[1] as u16) << 8) | buffer[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(buffer[0])` [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] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:135:22 [INFO] [stderr] | [INFO] [stderr] 135 | (machine.r_or_i(bytes[index + 2]) as u32 * [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(machine.r_or_i(bytes[index + 2]))` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:136:22 [INFO] [stderr] | [INFO] [stderr] 136 | machine.r_or_i(bytes[index + 3]) as u32) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(machine.r_or_i(bytes[index + 3]))` [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] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:230:44 [INFO] [stderr] | [INFO] [stderr] 230 | let value = char::from_u32(machine.r_or_i(bytes[index + 1]) as u32).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(machine.r_or_i(bytes[index + 1]))` [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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:285:22 [INFO] [stderr] | [INFO] [stderr] 285 | let value = ((buffer[1] as u16) << 8) | buffer[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buffer[1])` [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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:285:49 [INFO] [stderr] | [INFO] [stderr] 285 | let value = ((buffer[1] as u16) << 8) | buffer[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(buffer[0])` [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] Finished dev [unoptimized + debuginfo] target(s) in 0.95s [INFO] running `"docker" "inspect" "ec5e1018ef35f7589859ca23aac53cc8a4b7daf3c97298ddb8528c678319c004"` [INFO] running `"docker" "rm" "-f" "ec5e1018ef35f7589859ca23aac53cc8a4b7daf3c97298ddb8528c678319c004"` [INFO] [stdout] ec5e1018ef35f7589859ca23aac53cc8a4b7daf3c97298ddb8528c678319c004