[INFO] crate neovim-lib 0.5.4 is already in cache [INFO] extracting crate neovim-lib 0.5.4 into work/ex/clippy-test-run/sources/stable/reg/neovim-lib/0.5.4 [INFO] extracting crate neovim-lib 0.5.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/neovim-lib/0.5.4 [INFO] validating manifest of neovim-lib-0.5.4 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 neovim-lib-0.5.4 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 neovim-lib-0.5.4 [INFO] finished frobbing neovim-lib-0.5.4 [INFO] frobbed toml for neovim-lib-0.5.4 written to work/ex/clippy-test-run/sources/stable/reg/neovim-lib/0.5.4/Cargo.toml [INFO] started frobbing neovim-lib-0.5.4 [INFO] finished frobbing neovim-lib-0.5.4 [INFO] frobbed toml for neovim-lib-0.5.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/neovim-lib/0.5.4/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 neovim-lib-0.5.4 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/reg/neovim-lib/0.5.4:/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] b2a9fd32fd33dd855ad9ddd33e929ae6c669947ef114f1a140c9cf7f53d266af [INFO] running `"docker" "start" "-a" "b2a9fd32fd33dd855ad9ddd33e929ae6c669947ef114f1a140c9cf7f53d266af"` [INFO] [stderr] Checking rmpv v0.4.0 [INFO] [stderr] Checking neovim-lib v0.5.4 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rpc/client.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | msgid: msgid, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `msgid` [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/rpc/client.rs:217:33 [INFO] [stderr] | [INFO] [stderr] 217 | msgid: msgid, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `msgid` [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/rpc/client.rs:218:33 [INFO] [stderr] | [INFO] [stderr] 218 | result: result, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `result` [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/rpc/client.rs:224:33 [INFO] [stderr] | [INFO] [stderr] 224 | msgid: msgid, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `msgid` [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/rpc/client.rs:226:33 [INFO] [stderr] | [INFO] [stderr] 226 | error: error, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `error` [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/neovim.rs:143:18 [INFO] [stderr] | [INFO] [stderr] 143 | Neovim { session: session } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `session` [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/neovim_api.rs:14:13 [INFO] [stderr] | [INFO] [stderr] 14 | code_data: code_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `code_data` [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/neovim_api.rs:290:13 [INFO] [stderr] | [INFO] [stderr] 290 | code_data: code_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `code_data` [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/neovim_api.rs:460:13 [INFO] [stderr] | [INFO] [stderr] 460 | code_data: code_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `code_data` [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/rpc/client.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | msgid: msgid, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `msgid` [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/rpc/client.rs:217:33 [INFO] [stderr] | [INFO] [stderr] 217 | msgid: msgid, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `msgid` [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/rpc/client.rs:218:33 [INFO] [stderr] | [INFO] [stderr] 218 | result: result, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `result` [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/rpc/client.rs:224:33 [INFO] [stderr] | [INFO] [stderr] 224 | msgid: msgid, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `msgid` [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/rpc/client.rs:226:33 [INFO] [stderr] | [INFO] [stderr] 226 | error: error, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `error` [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/neovim.rs:143:18 [INFO] [stderr] | [INFO] [stderr] 143 | Neovim { session: session } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `session` [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/neovim_api.rs:14:13 [INFO] [stderr] | [INFO] [stderr] 14 | code_data: code_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `code_data` [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/neovim_api.rs:290:13 [INFO] [stderr] | [INFO] [stderr] 290 | code_data: code_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `code_data` [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/neovim_api.rs:460:13 [INFO] [stderr] | [INFO] [stderr] 460 | code_data: code_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `code_data` [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: unneeded unit expression [INFO] [stderr] --> src/rpc/model.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | () [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 return statement [INFO] [stderr] --> src/rpc/model.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | / return (res[0].as_u64().expect("Can't get u64 value at position 0"), [INFO] [stderr] 162 | | res[1].as_u64().expect("Can't get u64 value at position 1")); [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] 161 | (res[0].as_u64().expect("Can't get u64 value at position 0"), [INFO] [stderr] 162 | res[1].as_u64().expect("Can't get u64 value at position 1")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/rpc/model.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | () [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 return statement [INFO] [stderr] --> src/rpc/model.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | / return (res[0].as_u64().expect("Can't get u64 value at position 0"), [INFO] [stderr] 162 | | res[1].as_u64().expect("Can't get u64 value at position 1")); [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] 161 | (res[0].as_u64().expect("Can't get u64 value at position 0"), [INFO] [stderr] 162 | res[1].as_u64().expect("Can't get u64 value at position 1")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/rpc/model.rs:148:22 [INFO] [stderr] | [INFO] [stderr] 148 | .map(|v| T::from_val(v)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `T::from_val` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/rpc/model.rs:199:52 [INFO] [stderr] | [INFO] [stderr] 199 | let vec: Vec = self.into_iter().map(|v| Value::from(v)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Value::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/rpc/client.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | let ref mut writer = *self.writer.lock().unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^^^-------------------------------- help: try: `let writer = &mut (*self.writer.lock().unwrap());` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/rpc/client.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | let ref mut writer = *self.writer.lock().unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^^^-------------------------------- help: try: `let writer = &mut (*self.writer.lock().unwrap());` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/rpc/client.rs:231:25 [INFO] [stderr] | [INFO] [stderr] 231 | let ref mut writer = *writer.lock().unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^^^--------------------------- help: try: `let writer = &mut (*writer.lock().unwrap());` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/async.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | cb: Option) + Send + 'static>>, [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: redundant closure found [INFO] [stderr] --> src/async.rs:35:31 [INFO] [stderr] | [INFO] [stderr] 35 | let res = res.map(|v| R::from_val(v)).map_err( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `R::from_val` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/async.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | / match self.client { [INFO] [stderr] 46 | | &mut ClientConnection::Child(ref mut client, _) => { [INFO] [stderr] 47 | | client.call_async(self.method, self.args, self.cb) [INFO] [stderr] 48 | | } [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | }; [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] 45 | match *self.client { [INFO] [stderr] 46 | ClientConnection::Child(ref mut client, _) => { [INFO] [stderr] 47 | client.call_async(self.method, self.args, self.cb) [INFO] [stderr] 48 | } [INFO] [stderr] 49 | ClientConnection::Parent(ref mut client) => { [INFO] [stderr] 50 | client.call_async(self.method, self.args, self.cb) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/neovim.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | / match self { [INFO] [stderr] 28 | | &UiOption::RGB(val) => ("rgb", val.into()), [INFO] [stderr] 29 | | &UiOption::ExtPopupmenu(val) => ("ext_popupmenu", val.into()), [INFO] [stderr] 30 | | &UiOption::ExtTabline(val) => ("ext_tabline", val.into()), [INFO] [stderr] 31 | | &UiOption::ExtCmdline(val) => ("ext_cmdline", val.into()), [INFO] [stderr] 32 | | &UiOption::ExtWildmenu(val) => ("ext_wildmenu", val.into()), [INFO] [stderr] 33 | | } [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] 27 | match *self { [INFO] [stderr] 28 | UiOption::RGB(val) => ("rgb", val.into()), [INFO] [stderr] 29 | UiOption::ExtPopupmenu(val) => ("ext_popupmenu", val.into()), [INFO] [stderr] 30 | UiOption::ExtTabline(val) => ("ext_tabline", val.into()), [INFO] [stderr] 31 | UiOption::ExtCmdline(val) => ("ext_cmdline", val.into()), [INFO] [stderr] 32 | UiOption::ExtWildmenu(val) => ("ext_wildmenu", val.into()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `neovim::UiAttachOptions` [INFO] [stderr] --> src/neovim.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn new() -> UiAttachOptions { [INFO] [stderr] 43 | | UiAttachOptions { options: Vec::new() } [INFO] [stderr] 44 | | } [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] 37 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/rpc/model.rs:148:22 [INFO] [stderr] | [INFO] [stderr] 148 | .map(|v| T::from_val(v)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `T::from_val` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/rpc/model.rs:199:52 [INFO] [stderr] | [INFO] [stderr] 199 | let vec: Vec = self.into_iter().map(|v| Value::from(v)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Value::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/rpc/client.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | let ref mut writer = *self.writer.lock().unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^^^-------------------------------- help: try: `let writer = &mut (*self.writer.lock().unwrap());` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/rpc/client.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | let ref mut writer = *self.writer.lock().unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^^^-------------------------------- help: try: `let writer = &mut (*self.writer.lock().unwrap());` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/rpc/client.rs:231:25 [INFO] [stderr] | [INFO] [stderr] 231 | let ref mut writer = *writer.lock().unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^^^--------------------------- help: try: `let writer = &mut (*writer.lock().unwrap());` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/async.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | cb: Option) + Send + 'static>>, [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: redundant closure found [INFO] [stderr] --> src/async.rs:35:31 [INFO] [stderr] | [INFO] [stderr] 35 | let res = res.map(|v| R::from_val(v)).map_err( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `R::from_val` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/async.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | / match self.client { [INFO] [stderr] 46 | | &mut ClientConnection::Child(ref mut client, _) => { [INFO] [stderr] 47 | | client.call_async(self.method, self.args, self.cb) [INFO] [stderr] 48 | | } [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | }; [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] 45 | match *self.client { [INFO] [stderr] 46 | ClientConnection::Child(ref mut client, _) => { [INFO] [stderr] 47 | client.call_async(self.method, self.args, self.cb) [INFO] [stderr] 48 | } [INFO] [stderr] 49 | ClientConnection::Parent(ref mut client) => { [INFO] [stderr] 50 | client.call_async(self.method, self.args, self.cb) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/neovim.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | / match self { [INFO] [stderr] 28 | | &UiOption::RGB(val) => ("rgb", val.into()), [INFO] [stderr] 29 | | &UiOption::ExtPopupmenu(val) => ("ext_popupmenu", val.into()), [INFO] [stderr] 30 | | &UiOption::ExtTabline(val) => ("ext_tabline", val.into()), [INFO] [stderr] 31 | | &UiOption::ExtCmdline(val) => ("ext_cmdline", val.into()), [INFO] [stderr] 32 | | &UiOption::ExtWildmenu(val) => ("ext_wildmenu", val.into()), [INFO] [stderr] 33 | | } [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] 27 | match *self { [INFO] [stderr] 28 | UiOption::RGB(val) => ("rgb", val.into()), [INFO] [stderr] 29 | UiOption::ExtPopupmenu(val) => ("ext_popupmenu", val.into()), [INFO] [stderr] 30 | UiOption::ExtTabline(val) => ("ext_tabline", val.into()), [INFO] [stderr] 31 | UiOption::ExtCmdline(val) => ("ext_cmdline", val.into()), [INFO] [stderr] 32 | UiOption::ExtWildmenu(val) => ("ext_wildmenu", val.into()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `neovim::UiAttachOptions` [INFO] [stderr] --> src/neovim.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn new() -> UiAttachOptions { [INFO] [stderr] 43 | | UiAttachOptions { options: Vec::new() } [INFO] [stderr] 44 | | } [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] 37 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> tests/lib.rs:76:20 [INFO] [stderr] | [INFO] [stderr] 76 | if let Ok(_) = std::fs::metadata(&socket_path) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 77 | | break; [INFO] [stderr] 78 | | } [INFO] [stderr] | |_____________- help: try this: `if std::fs::metadata(&socket_path).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> tests/lib.rs:88:10 [INFO] [stderr] | [INFO] [stderr] 88 | .expect(&format!("Unable to connect to neovim's unix socket at {:?}", [INFO] [stderr] | __________^ [INFO] [stderr] 89 | | &socket_path)); [INFO] [stderr] | |_______________________________________^ help: try this: `unwrap_or_else(|_| panic!("Unable to connect to neovim's unix socket at {:?}", &socket_path))` [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] Finished dev [unoptimized + debuginfo] target(s) in 7.04s [INFO] running `"docker" "inspect" "b2a9fd32fd33dd855ad9ddd33e929ae6c669947ef114f1a140c9cf7f53d266af"` [INFO] running `"docker" "rm" "-f" "b2a9fd32fd33dd855ad9ddd33e929ae6c669947ef114f1a140c9cf7f53d266af"` [INFO] [stdout] b2a9fd32fd33dd855ad9ddd33e929ae6c669947ef114f1a140c9cf7f53d266af