[INFO] updating cached repository FauxFaux/badchat [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/FauxFaux/badchat [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/FauxFaux/badchat" "work/ex/clippy-test-run/sources/stable/gh/FauxFaux/badchat"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/FauxFaux/badchat'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/FauxFaux/badchat" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/FauxFaux/badchat"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/FauxFaux/badchat'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ef20a2db0e103747dfc86f137aa926535159edfa [INFO] sha for GitHub repo FauxFaux/badchat: ef20a2db0e103747dfc86f137aa926535159edfa [INFO] validating manifest of FauxFaux/badchat 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 FauxFaux/badchat 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 FauxFaux/badchat [INFO] finished frobbing FauxFaux/badchat [INFO] frobbed toml for FauxFaux/badchat written to work/ex/clippy-test-run/sources/stable/gh/FauxFaux/badchat/Cargo.toml [INFO] started frobbing FauxFaux/badchat [INFO] finished frobbing FauxFaux/badchat [INFO] frobbed toml for FauxFaux/badchat written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/FauxFaux/badchat/Cargo.toml [INFO] crate FauxFaux/badchat 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 FauxFaux/badchat against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/FauxFaux/badchat:/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] ba370e6d5e9e51f41de0a20c370e129eb2434bc1230d72489dce7ebd0a2545fe [INFO] running `"docker" "start" "-a" "ba370e6d5e9e51f41de0a20c370e129eb2434bc1230d72489dce7ebd0a2545fe"` [INFO] [stderr] Checking rustc-demangle v0.1.10 [INFO] [stderr] Compiling ring v0.13.5 [INFO] [stderr] Compiling backtrace-sys v0.1.26 [INFO] [stderr] Compiling libsqlite3-sys v0.10.0 [INFO] [stderr] Checking dns-lookup v1.0.0 [INFO] [stderr] Checking vecio v0.1.0 [INFO] [stderr] Compiling synstructure v0.10.1 [INFO] [stderr] Checking pbkdf2 v0.3.0 [INFO] [stderr] Compiling failure_derive v0.1.3 [INFO] [stderr] Checking backtrace v0.3.13 [INFO] [stderr] Checking failure v0.1.3 [INFO] [stderr] Checking sct v0.4.0 [INFO] [stderr] Checking webpki v0.18.1 [INFO] [stderr] Checking rustls v0.14.0 [INFO] [stderr] Checking rusqlite v0.15.0 [INFO] [stderr] Checking badchat v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: function is never used: `file_error` [INFO] [stderr] --> src/err.rs:50:1 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn file_error(ident: I, reason: &'static str) -> OutCommand { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `view` [INFO] [stderr] --> src/in_map.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn view(&self) -> &HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `tags_str` [INFO] [stderr] --> src/proto.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | fn tags_str(&self) -> Option<&str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `MultiAware` [INFO] [stderr] --> src/main.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | / MultiAware { [INFO] [stderr] 126 | | connection_account_id: AccountId, [INFO] [stderr] 127 | | users: HashSet, [INFO] [stderr] 128 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Pong` [INFO] [stderr] --> src/main.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | Pong(String), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/proto.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | tags = Some((1..end).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(1..end)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/proto.rs:84:23 [INFO] [stderr] | [INFO] [stderr] 84 | source = Some((here + 1..here + end).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(here + 1..here + end)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/proto.rs:96:15 [INFO] [stderr] | [INFO] [stderr] 96 | cmd = SubStr::from(here..here + end); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `SubStr::from()`: `here..here + end` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/proto.rs:101:14 [INFO] [stderr] | [INFO] [stderr] 101 | Some((here..from.len()).into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(here..from.len())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/proto.rs:302:39 [INFO] [stderr] | [INFO] [stderr] 302 | let len = remaining.find(' ').unwrap_or(remaining.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| remaining.len())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/serv/mod.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | Tls(rustls::ServerSession), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 45 | Tls(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | / match message.command() { [INFO] [stderr] 339 | | Ok(Command::Ping(symbol)) => { [INFO] [stderr] 340 | | output.push(Output { [INFO] [stderr] 341 | | from_to: FromTo::LinkManagement(us), [INFO] [stderr] ... | [INFO] [stderr] 348 | | _ => (), [INFO] [stderr] 349 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 338 | if let Ok(Command::Ping(symbol)) = message.command() { [INFO] [stderr] 339 | output.push(Output { [INFO] [stderr] 340 | from_to: FromTo::LinkManagement(us), [INFO] [stderr] 341 | tags: (), [INFO] [stderr] 342 | cmd_and_args: OutCommand::new("PONG", &[symbol]), [INFO] [stderr] 343 | then_close: false, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: function is never used: `file_error` [INFO] [stderr] --> src/err.rs:50:1 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn file_error(ident: I, reason: &'static str) -> OutCommand { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `view` [INFO] [stderr] --> src/in_map.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn view(&self) -> &HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `MultiAware` [INFO] [stderr] --> src/main.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | / MultiAware { [INFO] [stderr] 126 | | connection_account_id: AccountId, [INFO] [stderr] 127 | | users: HashSet, [INFO] [stderr] 128 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Pong` [INFO] [stderr] --> src/main.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | Pong(String), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/proto.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | tags = Some((1..end).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(1..end)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/proto.rs:84:23 [INFO] [stderr] | [INFO] [stderr] 84 | source = Some((here + 1..here + end).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(here + 1..here + end)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/proto.rs:96:15 [INFO] [stderr] | [INFO] [stderr] 96 | cmd = SubStr::from(here..here + end); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `SubStr::from()`: `here..here + end` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/proto.rs:101:14 [INFO] [stderr] | [INFO] [stderr] 101 | Some((here..from.len()).into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(here..from.len())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/proto.rs:302:39 [INFO] [stderr] | [INFO] [stderr] 302 | let len = remaining.find(' ').unwrap_or(remaining.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| remaining.len())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/proto.rs:319:50 [INFO] [stderr] | [INFO] [stderr] 319 | let m = parse_message(input.to_string()).expect(&format!("parsing {}", input)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("parsing {}", input))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/serv/mod.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | Tls(rustls::ServerSession), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 45 | Tls(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | / match message.command() { [INFO] [stderr] 339 | | Ok(Command::Ping(symbol)) => { [INFO] [stderr] 340 | | output.push(Output { [INFO] [stderr] 341 | | from_to: FromTo::LinkManagement(us), [INFO] [stderr] ... | [INFO] [stderr] 348 | | _ => (), [INFO] [stderr] 349 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 338 | if let Ok(Command::Ping(symbol)) = message.command() { [INFO] [stderr] 339 | output.push(Output { [INFO] [stderr] 340 | from_to: FromTo::LinkManagement(us), [INFO] [stderr] 341 | tags: (), [INFO] [stderr] 342 | cmd_and_args: OutCommand::new("PONG", &[symbol]), [INFO] [stderr] 343 | then_close: false, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 43.39s [INFO] running `"docker" "inspect" "ba370e6d5e9e51f41de0a20c370e129eb2434bc1230d72489dce7ebd0a2545fe"` [INFO] running `"docker" "rm" "-f" "ba370e6d5e9e51f41de0a20c370e129eb2434bc1230d72489dce7ebd0a2545fe"` [INFO] [stdout] ba370e6d5e9e51f41de0a20c370e129eb2434bc1230d72489dce7ebd0a2545fe