[INFO] updating cached repository gourlaysama/nsbt [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/gourlaysama/nsbt [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/gourlaysama/nsbt" "work/ex/clippy-test-run/sources/stable/gh/gourlaysama/nsbt"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/gourlaysama/nsbt'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/gourlaysama/nsbt" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gourlaysama/nsbt"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gourlaysama/nsbt'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 593663272538c490833daf202cf9f2953eb43a7f [INFO] sha for GitHub repo gourlaysama/nsbt: 593663272538c490833daf202cf9f2953eb43a7f [INFO] validating manifest of gourlaysama/nsbt 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 gourlaysama/nsbt 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 gourlaysama/nsbt [INFO] finished frobbing gourlaysama/nsbt [INFO] frobbed toml for gourlaysama/nsbt written to work/ex/clippy-test-run/sources/stable/gh/gourlaysama/nsbt/Cargo.toml [INFO] started frobbing gourlaysama/nsbt [INFO] finished frobbing gourlaysama/nsbt [INFO] frobbed toml for gourlaysama/nsbt written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gourlaysama/nsbt/Cargo.toml [INFO] crate gourlaysama/nsbt 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 gourlaysama/nsbt against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/gourlaysama/nsbt:/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] 80a1cc4947d4f567893724bf2f671a4041317d51d59eb4420d498d6580c6f21b [INFO] running `"docker" "start" "-a" "80a1cc4947d4f567893724bf2f671a4041317d51d59eb4420d498d6580c6f21b"` [INFO] [stderr] Checking enum_primitive v0.1.1 [INFO] [stderr] Checking mio-uds v0.6.4 [INFO] [stderr] Checking url_serde v0.2.0 [INFO] [stderr] Checking simplelog v0.5.0 [INFO] [stderr] Checking languageserver-types v0.30.0 [INFO] [stderr] Checking tokio-uds v0.1.7 [INFO] [stderr] Checking nsbt v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | command_line: command_line, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `command_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:53:45 [INFO] [stderr] | [INFO] [stderr] 53 | params: SbtSettingQueryParams { setting: setting }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `setting` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/messages.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | / write!( [INFO] [stderr] 139 | | f, [INFO] [stderr] 140 | | "[{}] {}:{}:{}: {}\n", [INFO] [stderr] 141 | | typ, [INFO] [stderr] ... | [INFO] [stderr] 145 | | d.message [INFO] [stderr] 146 | | )?; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/messages.rs:164:59 [INFO] [stderr] | [INFO] [stderr] 164 | RpcAnswerResult::Setting { ref value, .. } => write!(f, "[info] {}\n", value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | command_line: command_line, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `command_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/messages.rs:53:45 [INFO] [stderr] | [INFO] [stderr] 53 | params: SbtSettingQueryParams { setting: setting }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `setting` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/messages.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | / write!( [INFO] [stderr] 139 | | f, [INFO] [stderr] 140 | | "[{}] {}:{}:{}: {}\n", [INFO] [stderr] 141 | | typ, [INFO] [stderr] ... | [INFO] [stderr] 145 | | d.message [INFO] [stderr] 146 | | )?; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/messages.rs:164:59 [INFO] [stderr] | [INFO] [stderr] 164 | RpcAnswerResult::Setting { ref value, .. } => write!(f, "[info] {}\n", value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/messages.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match self { [INFO] [stderr] 119 | | &EventMessage::Log(LogMessageParams { typ, ref message }) => { [INFO] [stderr] 120 | | let typ = match typ { [INFO] [stderr] 121 | | MessageType::Error => "error", [INFO] [stderr] ... | [INFO] [stderr] 149 | | } [INFO] [stderr] 150 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 118 | match *self { [INFO] [stderr] 119 | EventMessage::Log(LogMessageParams { typ, ref message }) => { [INFO] [stderr] 120 | let typ = match typ { [INFO] [stderr] 121 | MessageType::Error => "error", [INFO] [stderr] 122 | MessageType::Info => "info", [INFO] [stderr] 123 | MessageType::Log => "info", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/messages.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | / match self { [INFO] [stderr] 172 | | &RpcInput::Notification(ref ev) => ev.fmt(f), [INFO] [stderr] 173 | | &RpcInput::CallResult(ref res) => res.fmt(f), [INFO] [stderr] 174 | | &RpcInput::Error(ref e) => e.fmt(f), [INFO] [stderr] 175 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 171 | match *self { [INFO] [stderr] 172 | RpcInput::Notification(ref ev) => ev.fmt(f), [INFO] [stderr] 173 | RpcInput::CallResult(ref res) => res.fmt(f), [INFO] [stderr] 174 | RpcInput::Error(ref e) => e.fmt(f), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `codec::JsonRpcFramingCodec` [INFO] [stderr] --> src/codec.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> JsonRpcFramingCodec { [INFO] [stderr] 20 | | JsonRpcFramingCodec { [INFO] [stderr] 21 | | length_to_decode: None, [INFO] [stderr] 22 | | parsing_payload: false, [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/messages.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match self { [INFO] [stderr] 119 | | &EventMessage::Log(LogMessageParams { typ, ref message }) => { [INFO] [stderr] 120 | | let typ = match typ { [INFO] [stderr] 121 | | MessageType::Error => "error", [INFO] [stderr] ... | [INFO] [stderr] 149 | | } [INFO] [stderr] 150 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 118 | match *self { [INFO] [stderr] 119 | EventMessage::Log(LogMessageParams { typ, ref message }) => { [INFO] [stderr] 120 | let typ = match typ { [INFO] [stderr] 121 | MessageType::Error => "error", [INFO] [stderr] 122 | MessageType::Info => "info", [INFO] [stderr] 123 | MessageType::Log => "info", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/messages.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | / match self { [INFO] [stderr] 172 | | &RpcInput::Notification(ref ev) => ev.fmt(f), [INFO] [stderr] 173 | | &RpcInput::CallResult(ref res) => res.fmt(f), [INFO] [stderr] 174 | | &RpcInput::Error(ref e) => e.fmt(f), [INFO] [stderr] 175 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 171 | match *self { [INFO] [stderr] 172 | RpcInput::Notification(ref ev) => ev.fmt(f), [INFO] [stderr] 173 | RpcInput::CallResult(ref res) => res.fmt(f), [INFO] [stderr] 174 | RpcInput::Error(ref e) => e.fmt(f), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `codec::JsonRpcFramingCodec` [INFO] [stderr] --> src/codec.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> JsonRpcFramingCodec { [INFO] [stderr] 20 | | JsonRpcFramingCodec { [INFO] [stderr] 21 | | length_to_decode: None, [INFO] [stderr] 22 | | parsing_payload: false, [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/main.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/main.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:96:56 [INFO] [stderr] | [INFO] [stderr] 96 | let commands = matches.values_of_lossy("commands").unwrap_or(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/main.rs:118:6 [INFO] [stderr] | [INFO] [stderr] 118 | ) -> Box, S), SbtProto), Error = io::Error> + 'a> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:96:56 [INFO] [stderr] | [INFO] [stderr] 96 | let commands = matches.values_of_lossy("commands").unwrap_or(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/main.rs:118:6 [INFO] [stderr] | [INFO] [stderr] 118 | ) -> Box, S), SbtProto), Error = io::Error> + 'a> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 16.60s [INFO] running `"docker" "inspect" "80a1cc4947d4f567893724bf2f671a4041317d51d59eb4420d498d6580c6f21b"` [INFO] running `"docker" "rm" "-f" "80a1cc4947d4f567893724bf2f671a4041317d51d59eb4420d498d6580c6f21b"` [INFO] [stdout] 80a1cc4947d4f567893724bf2f671a4041317d51d59eb4420d498d6580c6f21b