[INFO] crate mysql_async 0.15.1 is already in cache [INFO] extracting crate mysql_async 0.15.1 into work/ex/clippy-test-run/sources/stable/reg/mysql_async/0.15.1 [INFO] extracting crate mysql_async 0.15.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mysql_async/0.15.1 [INFO] validating manifest of mysql_async-0.15.1 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 mysql_async-0.15.1 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 mysql_async-0.15.1 [INFO] finished frobbing mysql_async-0.15.1 [INFO] frobbed toml for mysql_async-0.15.1 written to work/ex/clippy-test-run/sources/stable/reg/mysql_async/0.15.1/Cargo.toml [INFO] started frobbing mysql_async-0.15.1 [INFO] finished frobbing mysql_async-0.15.1 [INFO] frobbed toml for mysql_async-0.15.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mysql_async/0.15.1/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 mysql_async-0.15.1 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/reg/mysql_async/0.15.1:/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] cd2c5d1cc468b2b3b0432df11bb3980fc631512b800f5caaefbe657a451e7d6d [INFO] running `"docker" "start" "-a" "cd2c5d1cc468b2b3b0432df11bb3980fc631512b800f5caaefbe657a451e7d6d"` [INFO] [stderr] Checking atoi v0.2.4 [INFO] [stderr] Checking twox-hash v1.1.2 [INFO] [stderr] Checking tokio-threadpool v0.1.11 [INFO] [stderr] Checking tokio-udp v0.1.3 [INFO] [stderr] Checking tokio-uds v0.2.5 [INFO] [stderr] Checking mysql_common v0.9.2 [INFO] [stderr] Checking tokio-fs v0.1.5 [INFO] [stderr] Checking tokio v0.1.15 [INFO] [stderr] Checking mysql_async v0.15.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/conn/pool/futures/disconnect_pool.rs:25:22 [INFO] [stderr] | [INFO] [stderr] 25 | DisconnectPool { pool: pool } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pool` [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/conn/pool/mod.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | opts: opts, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `opts` [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/conn/mod.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | opts: opts, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `opts` [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/io/futures/write_packet.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | seq_id: seq_id, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `seq_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/opts.rs:473:9 [INFO] [stderr] | [INFO] [stderr] 473 | user: user, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `user` [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/opts.rs:474:9 [INFO] [stderr] | [INFO] [stderr] 474 | pass: pass, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pass` [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/opts.rs:475:9 [INFO] [stderr] | [INFO] [stderr] 475 | ip_or_hostname: ip_or_hostname, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ip_or_hostname` [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/opts.rs:476:9 [INFO] [stderr] | [INFO] [stderr] 476 | tcp_port: tcp_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `tcp_port` [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/opts.rs:477:9 [INFO] [stderr] | [INFO] [stderr] 477 | db_name: db_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `db_name` [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/queryable/stmt.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | named_params: named_params, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `named_params` [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/queryable/stmt.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | statement_id: statement_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `statement_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/queryable/stmt.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | num_columns: num_columns, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_columns` [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/queryable/stmt.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | num_params: num_params, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_params` [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/queryable/stmt.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | warning_count: warning_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `warning_count` [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/conn/pool/futures/disconnect_pool.rs:25:22 [INFO] [stderr] | [INFO] [stderr] 25 | DisconnectPool { pool: pool } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pool` [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/conn/pool/mod.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | opts: opts, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `opts` [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/conn/mod.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | opts: opts, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `opts` [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/io/futures/write_packet.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | seq_id: seq_id, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `seq_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/opts.rs:473:9 [INFO] [stderr] | [INFO] [stderr] 473 | user: user, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `user` [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/opts.rs:474:9 [INFO] [stderr] | [INFO] [stderr] 474 | pass: pass, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pass` [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/opts.rs:475:9 [INFO] [stderr] | [INFO] [stderr] 475 | ip_or_hostname: ip_or_hostname, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ip_or_hostname` [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/opts.rs:476:9 [INFO] [stderr] | [INFO] [stderr] 476 | tcp_port: tcp_port, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `tcp_port` [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/opts.rs:477:9 [INFO] [stderr] | [INFO] [stderr] 477 | db_name: db_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `db_name` [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/queryable/stmt.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | named_params: named_params, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `named_params` [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/queryable/stmt.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | statement_id: statement_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `statement_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/queryable/stmt.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | num_columns: num_columns, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_columns` [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/queryable/stmt.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | num_params: num_params, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_params` [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/queryable/stmt.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | warning_count: warning_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `warning_count` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/conn/pool/mod.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | pool [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/conn/pool/mod.rs:68:20 [INFO] [stderr] | [INFO] [stderr] 68 | let pool = Pool { [INFO] [stderr] | ____________________^ [INFO] [stderr] 69 | | opts: opts, [INFO] [stderr] 70 | | inner: Arc::new(Mutex::new(Inner { [INFO] [stderr] 71 | | closed: false, [INFO] [stderr] ... | [INFO] [stderr] 81 | | max: pool_max, [INFO] [stderr] 82 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/conn/mod.rs:463:57 [INFO] [stderr] | [INFO] [stderr] 463 | fn set_affected_rows(&mut self, affected_rows: u64) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [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 return type [INFO] [stderr] --> src/conn/mod.rs:475:59 [INFO] [stderr] | [INFO] [stderr] 475 | fn set_last_insert_id(&mut self, last_insert_id: u64) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/conn/mod.rs:483:59 [INFO] [stderr] | [INFO] [stderr] 483 | fn set_status(&mut self, status: consts::StatusFlags) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/conn/mod.rs:487:47 [INFO] [stderr] | [INFO] [stderr] 487 | fn set_warnings(&mut self, warnings: u16) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/conn/mod.rs:491:42 [INFO] [stderr] | [INFO] [stderr] 491 | fn set_seq_id(&mut self, seq_id: u8) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/conn/mod.rs:495:25 [INFO] [stderr] | [INFO] [stderr] 495 | fn touch(&mut self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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/connection_like/read_packet.rs:57:21 [INFO] [stderr] | [INFO] [stderr] 57 | None => return Err(ErrorKind::ConnectionClosed.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ErrorKind::ConnectionClosed.into())` [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: unneeded unit return type [INFO] [stderr] --> src/connection_like/mod.rs:83:53 [INFO] [stderr] | [INFO] [stderr] 83 | fn return_stream(&mut self, stream: io::Stream) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:151:59 [INFO] [stderr] | [INFO] [stderr] 151 | fn set_last_command(&mut self, last_command: Command) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:155:59 [INFO] [stderr] | [INFO] [stderr] 155 | fn set_last_insert_id(&mut self, last_insert_id: u64) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:163:51 [INFO] [stderr] | [INFO] [stderr] 163 | fn set_status(&mut self, status: StatusFlags) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:167:47 [INFO] [stderr] | [INFO] [stderr] 167 | fn set_warnings(&mut self, warnings: u16) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:171:42 [INFO] [stderr] | [INFO] [stderr] 171 | fn set_seq_id(&mut self, seq_id: u8) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:175:25 [INFO] [stderr] | [INFO] [stderr] 175 | fn touch(&mut self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/conn/pool/mod.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | pool [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/conn/pool/mod.rs:68:20 [INFO] [stderr] | [INFO] [stderr] 68 | let pool = Pool { [INFO] [stderr] | ____________________^ [INFO] [stderr] 69 | | opts: opts, [INFO] [stderr] 70 | | inner: Arc::new(Mutex::new(Inner { [INFO] [stderr] 71 | | closed: false, [INFO] [stderr] ... | [INFO] [stderr] 81 | | max: pool_max, [INFO] [stderr] 82 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/conn/mod.rs:463:57 [INFO] [stderr] | [INFO] [stderr] 463 | fn set_affected_rows(&mut self, affected_rows: u64) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [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 return type [INFO] [stderr] --> src/conn/mod.rs:475:59 [INFO] [stderr] | [INFO] [stderr] 475 | fn set_last_insert_id(&mut self, last_insert_id: u64) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/conn/mod.rs:483:59 [INFO] [stderr] | [INFO] [stderr] 483 | fn set_status(&mut self, status: consts::StatusFlags) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/conn/mod.rs:487:47 [INFO] [stderr] | [INFO] [stderr] 487 | fn set_warnings(&mut self, warnings: u16) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/conn/mod.rs:491:42 [INFO] [stderr] | [INFO] [stderr] 491 | fn set_seq_id(&mut self, seq_id: u8) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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/io/mod.rs:335:9 [INFO] [stderr] | [INFO] [stderr] 335 | return Ok(NotReady); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(NotReady)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/conn/mod.rs:495:25 [INFO] [stderr] | [INFO] [stderr] 495 | fn touch(&mut self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/local_infile_handler/builtin.rs:193:13 [INFO] [stderr] | [INFO] [stderr] 193 | return Box::new(Err(err_msg.into()).into_future()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Box::new(Err(err_msg.into()).into_future())` [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/connection_like/read_packet.rs:57:21 [INFO] [stderr] | [INFO] [stderr] 57 | None => return Err(ErrorKind::ConnectionClosed.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ErrorKind::ConnectionClosed.into())` [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: unneeded unit return type [INFO] [stderr] --> src/connection_like/mod.rs:83:53 [INFO] [stderr] | [INFO] [stderr] 83 | fn return_stream(&mut self, stream: io::Stream) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:151:59 [INFO] [stderr] | [INFO] [stderr] 151 | fn set_last_command(&mut self, last_command: Command) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:155:59 [INFO] [stderr] | [INFO] [stderr] 155 | fn set_last_insert_id(&mut self, last_insert_id: u64) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:163:51 [INFO] [stderr] | [INFO] [stderr] 163 | fn set_status(&mut self, status: StatusFlags) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:167:47 [INFO] [stderr] | [INFO] [stderr] 167 | fn set_warnings(&mut self, warnings: u16) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:171:42 [INFO] [stderr] | [INFO] [stderr] 171 | fn set_seq_id(&mut self, seq_id: u8) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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 return type [INFO] [stderr] --> src/connection_like/mod.rs:175:25 [INFO] [stderr] | [INFO] [stderr] 175 | fn touch(&mut self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [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/queryable/stmt.rs:237:43 [INFO] [stderr] | [INFO] [stderr] 237 | Params::Positional(params) => return A(self.execute_positional(params)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `A(self.execute_positional(params))` [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/queryable/stmt.rs:238:33 [INFO] [stderr] | [INFO] [stderr] 238 | Params::Named(_) => return B(A(self.execute_named(params))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `B(A(self.execute_named(params)))` [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/queryable/stmt.rs:239:30 [INFO] [stderr] | [INFO] [stderr] 239 | Params::Empty => return B(B(self.execute_empty())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `B(B(self.execute_empty()))` [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/io/mod.rs:335:9 [INFO] [stderr] | [INFO] [stderr] 335 | return Ok(NotReady); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(NotReady)` [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/local_infile_handler/builtin.rs:193:13 [INFO] [stderr] | [INFO] [stderr] 193 | return Box::new(Err(err_msg.into()).into_future()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Box::new(Err(err_msg.into()).into_future())` [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/queryable/stmt.rs:237:43 [INFO] [stderr] | [INFO] [stderr] 237 | Params::Positional(params) => return A(self.execute_positional(params)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `A(self.execute_positional(params))` [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/queryable/stmt.rs:238:33 [INFO] [stderr] | [INFO] [stderr] 238 | Params::Named(_) => return B(A(self.execute_named(params))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `B(A(self.execute_named(params)))` [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/queryable/stmt.rs:239:30 [INFO] [stderr] | [INFO] [stderr] 239 | Params::Empty => return B(B(self.execute_empty())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `B(B(self.execute_empty()))` [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: use of deprecated item 'tokio::net::ConnectFuture': use `tokio::net::tcp::ConnectFuture` instead [INFO] [stderr] --> src/io/futures/connecting_stream.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use tokio::net::ConnectFuture; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tokio::net::ConnectFuture': use `tokio::net::tcp::ConnectFuture` instead [INFO] [stderr] --> src/io/futures/connecting_stream.rs:27:32 [INFO] [stderr] | [INFO] [stderr] 27 | WaitForStream(SelectOk), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tokio::net::ConnectFuture': use `tokio::net::tcp::ConnectFuture` instead [INFO] [stderr] --> src/io/futures/connecting_stream.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use tokio::net::ConnectFuture; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tokio::net::ConnectFuture': use `tokio::net::tcp::ConnectFuture` instead [INFO] [stderr] --> src/io/futures/connecting_stream.rs:27:32 [INFO] [stderr] | [INFO] [stderr] 27 | WaitForStream(SelectOk), [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/conn/named_params.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | / match state { [INFO] [stderr] 70 | | InNamedParam => params[cur_param].1 = query.len(), [INFO] [stderr] 71 | | _ => (), [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ help: try this: `if let InNamedParam = state { params[cur_param].1 = query.len() }` [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] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/conn/named_params.rs:73:8 [INFO] [stderr] | [INFO] [stderr] 73 | if params.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!params.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/conn/pool/mod.rs:131:15 [INFO] [stderr] | [INFO] [stderr] 131 | while self.inner_ref().idle.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.inner_ref().idle.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/conn/pool/mod.rs:182:5 [INFO] [stderr] | [INFO] [stderr] 182 | / fn handle_futures(&mut self) -> Result<()> { [INFO] [stderr] 183 | | if !self.in_queue() { [INFO] [stderr] 184 | | // There is no futures in queue [INFO] [stderr] 185 | | return Ok(()); [INFO] [stderr] ... | [INFO] [stderr] 291 | | } [INFO] [stderr] 292 | | } [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/conn/pool/mod.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / match out { [INFO] [stderr] 207 | | Err(err) => { [INFO] [stderr] 208 | | // early return in case of error [INFO] [stderr] 209 | | while let Some(i) = done_fut_idxs.pop() { [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => (), [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] ... [INFO] [stderr] 227 | / handle!(disconnecting { [INFO] [stderr] 228 | | Ok(Ready(_)) => { [INFO] [stderr] 229 | | handled = true; [INFO] [stderr] 230 | | Ok(()) [INFO] [stderr] 231 | | }, [INFO] [stderr] 232 | | Err(_) => { Ok(()) }, [INFO] [stderr] 233 | | }); [INFO] [stderr] | |___________- in this macro invocation [INFO] [stderr] | [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] 206 | if let Err(err) = out { handle!(disconnecting { [INFO] [stderr] 207 | Ok(Ready(_)) => { [INFO] [stderr] 208 | handled = true; [INFO] [stderr] 209 | Ok(()) [INFO] [stderr] 210 | }, [INFO] [stderr] 211 | Err(_) => { Ok(()) }, [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/conn/pool/mod.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / match out { [INFO] [stderr] 207 | | Err(err) => { [INFO] [stderr] 208 | | // early return in case of error [INFO] [stderr] 209 | | while let Some(i) = done_fut_idxs.pop() { [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => (), [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] ... [INFO] [stderr] 236 | / handle!(dropping { [INFO] [stderr] 237 | | Ok(Ready(conn)) => { [INFO] [stderr] 238 | | let closed = self.inner_ref().closed; [INFO] [stderr] 239 | | if closed { [INFO] [stderr] ... | [INFO] [stderr] 247 | | Err(_) => { Ok(()) }, [INFO] [stderr] 248 | | }); [INFO] [stderr] | |___________- in this macro invocation [INFO] [stderr] | [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] 206 | if let Err(err) = out { handle!(dropping { [INFO] [stderr] 207 | Ok(Ready(conn)) => { [INFO] [stderr] 208 | let closed = self.inner_ref().closed; [INFO] [stderr] 209 | if closed { [INFO] [stderr] 210 | self.inner_ref().disconnecting.push(conn.disconnect()); [INFO] [stderr] 211 | } else { [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/conn/pool/mod.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / match out { [INFO] [stderr] 207 | | Err(err) => { [INFO] [stderr] 208 | | // early return in case of error [INFO] [stderr] 209 | | while let Some(i) = done_fut_idxs.pop() { [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => (), [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] ... [INFO] [stderr] 251 | / handle!(rollback { [INFO] [stderr] 252 | | Ok(Ready(conn)) => { [INFO] [stderr] 253 | | let closed = self.inner_ref().closed; [INFO] [stderr] 254 | | if closed { [INFO] [stderr] ... | [INFO] [stderr] 262 | | Err(_) => { Ok(()) }, [INFO] [stderr] 263 | | }); [INFO] [stderr] | |___________- in this macro invocation [INFO] [stderr] | [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] 206 | if let Err(err) = out { handle!(rollback { [INFO] [stderr] 207 | Ok(Ready(conn)) => { [INFO] [stderr] 208 | let closed = self.inner_ref().closed; [INFO] [stderr] 209 | if closed { [INFO] [stderr] 210 | self.inner_ref().disconnecting.push(conn.disconnect()); [INFO] [stderr] 211 | } else { [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/conn/pool/mod.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / match out { [INFO] [stderr] 207 | | Err(err) => { [INFO] [stderr] 208 | | // early return in case of error [INFO] [stderr] 209 | | while let Some(i) = done_fut_idxs.pop() { [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => (), [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] ... [INFO] [stderr] 266 | / handle!(new { [INFO] [stderr] 267 | | Ok(Ready(conn)) => { [INFO] [stderr] 268 | | let closed = self.inner_ref().closed; [INFO] [stderr] 269 | | if closed { [INFO] [stderr] ... | [INFO] [stderr] 284 | | }, [INFO] [stderr] 285 | | }); [INFO] [stderr] | |___________- in this macro invocation [INFO] [stderr] | [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] 206 | if let Err(err) = out { handle!(new { [INFO] [stderr] 207 | Ok(Ready(conn)) => { [INFO] [stderr] 208 | let closed = self.inner_ref().closed; [INFO] [stderr] 209 | if closed { [INFO] [stderr] 210 | self.inner_ref().disconnecting.push(conn.disconnect()); [INFO] [stderr] 211 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/conn/mod.rs:234:51 [INFO] [stderr] | [INFO] [stderr] 234 | self.opts.get_user().as_ref().map(|x| x.as_ref()), [INFO] [stderr] | ^^^^^^^^^^ help: try this: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/conn/mod.rs:235:54 [INFO] [stderr] | [INFO] [stderr] 235 | self.opts.get_db_name().as_ref().map(|x| x.as_ref()), [INFO] [stderr] | ^^^^^^^^^^ help: try this: `x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/conn/mod.rs:252:60 [INFO] [stderr] | [INFO] [stderr] 252 | let mut pass = self.opts.get_pass().map(Vec::from).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: the loop variable `i` is used to index `pass` [INFO] [stderr] --> src/conn/mod.rs:268:42 [INFO] [stderr] | [INFO] [stderr] 268 | for i in 0..pass.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 268 | for (i, ) in pass.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/conn/mod.rs:308:5 [INFO] [stderr] | [INFO] [stderr] 308 | / pub fn new>(opts: T) -> impl MyFuture { [INFO] [stderr] 309 | | let mut conn = Conn::empty(opts.into()); [INFO] [stderr] 310 | | [INFO] [stderr] 311 | | Stream::connect((conn.opts.get_ip_or_hostname(), conn.opts.get_tcp_port())) [INFO] [stderr] ... | [INFO] [stderr] 324 | | .and_then(Conn::run_init_commands) [INFO] [stderr] 325 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/conn/mod.rs:348:19 [INFO] [stderr] | [INFO] [stderr] 348 | let ttl = self.opts.get_conn_ttl().unwrap_or(self.wait_timeout) as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.opts.get_conn_ttl().unwrap_or(self.wait_timeout))` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/connection_like/mod.rs:232:42 [INFO] [stderr] | [INFO] [stderr] 232 | fn get_cached_stmt(&mut self, query: &String) -> Option<&InnerStmt> { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/connection_like/mod.rs:290:53 [INFO] [stderr] | [INFO] [stderr] 290 | let params = if packets.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!packets.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/connection_like/mod.rs:328:54 [INFO] [stderr] | [INFO] [stderr] 328 | let columns = if packets.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!packets.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/errors.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | / error_chain! { [INFO] [stderr] 17 | | foreign_links { [INFO] [stderr] 18 | | Io(io::Error); [INFO] [stderr] 19 | | UrlParseError(url::ParseError); [INFO] [stderr] ... | [INFO] [stderr] 102 | | } [INFO] [stderr] 103 | | } [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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/macros.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | $($step($ty),)+ [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] ::: src/io/futures/connecting_stream.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | / steps! { [INFO] [stderr] 26 | | ConnectingStream { [INFO] [stderr] 27 | | WaitForStream(SelectOk), [INFO] [stderr] 28 | | Fail(Failed<(), Error>), [INFO] [stderr] 29 | | } [INFO] [stderr] 30 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [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] 28 | Fail(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/io/futures/connecting_stream.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | if streams.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!streams.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/io/futures/write_packet.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 29 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/io/mod.rs:67:53 [INFO] [stderr] | [INFO] [stderr] 67 | let ms = ms.map(|val| Duration::from_millis(val as u64)); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(val)` [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: length comparison to zero [INFO] [stderr] --> src/local_infile_handler/builtin.rs:98:24 [INFO] [stderr] | [INFO] [stderr] 98 | if data_buf.len() == 0 && !buf.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data_buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/opts.rs:154:16 [INFO] [stderr] | [INFO] [stderr] 154 | } else if self.ip_or_hostname == "localhost" { [INFO] [stderr] | ________________^ [INFO] [stderr] 155 | | true [INFO] [stderr] 156 | | } else { [INFO] [stderr] 157 | | false [INFO] [stderr] 158 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `self.ip_or_hostname == "localhost"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/opts.rs:197:9 [INFO] [stderr] | [INFO] [stderr] 197 | self.tcp_keepalive.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.tcp_keepalive` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/opts.rs:467:10 [INFO] [stderr] | [INFO] [stderr] 467 | .unwrap_or("127.0.0.1".into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "127.0.0.1".into())` [INFO] [stderr] | [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/queryable/query_result/mod.rs:278:39 [INFO] [stderr] | [INFO] [stderr] 278 | pub fn map(self, fun: F) -> Either), Error>, Map> [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/queryable/query_result/mod.rs:315:10 [INFO] [stderr] | [INFO] [stderr] 315 | ) -> Either, Reduce> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/queryable/query_result/mod.rs:353:30 [INFO] [stderr] | [INFO] [stderr] 353 | .map(|new_this| Loop::Continue(new_this)))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Loop::Continue` [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: replacing an `Option` with `None` [INFO] [stderr] --> src/queryable/query_result/mod.rs:414:40 [INFO] [stderr] | [INFO] [stderr] 414 | let actual_conn_like = mem::replace(conn_like, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `conn_like.take()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mem_replace_option_with_none)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/queryable/stmt.rs:361:17 [INFO] [stderr] | [INFO] [stderr] 361 | params_def: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Column]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/queryable/stmt.rs:369:22 [INFO] [stderr] | [INFO] [stderr] 369 | writer.write_all(null_bitmap.storage().as_ref()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `null_bitmap.storage()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/queryable/transaction.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / fn new(conn_like: T, options: TransactionOptions) -> impl MyFuture> { [INFO] [stderr] 102 | | let TransactionOptions { [INFO] [stderr] 103 | | consistent_snapshot, [INFO] [stderr] 104 | | isolation_level, [INFO] [stderr] ... | [INFO] [stderr] 150 | | B(fut) [INFO] [stderr] 151 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [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/conn/named_params.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | / match state { [INFO] [stderr] 70 | | InNamedParam => params[cur_param].1 = query.len(), [INFO] [stderr] 71 | | _ => (), [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ help: try this: `if let InNamedParam = state { params[cur_param].1 = query.len() }` [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] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/conn/named_params.rs:73:8 [INFO] [stderr] | [INFO] [stderr] 73 | if params.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!params.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/conn/pool/mod.rs:131:15 [INFO] [stderr] | [INFO] [stderr] 131 | while self.inner_ref().idle.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.inner_ref().idle.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/conn/pool/mod.rs:182:5 [INFO] [stderr] | [INFO] [stderr] 182 | / fn handle_futures(&mut self) -> Result<()> { [INFO] [stderr] 183 | | if !self.in_queue() { [INFO] [stderr] 184 | | // There is no futures in queue [INFO] [stderr] 185 | | return Ok(()); [INFO] [stderr] ... | [INFO] [stderr] 291 | | } [INFO] [stderr] 292 | | } [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/conn/pool/mod.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / match out { [INFO] [stderr] 207 | | Err(err) => { [INFO] [stderr] 208 | | // early return in case of error [INFO] [stderr] 209 | | while let Some(i) = done_fut_idxs.pop() { [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => (), [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] ... [INFO] [stderr] 227 | / handle!(disconnecting { [INFO] [stderr] 228 | | Ok(Ready(_)) => { [INFO] [stderr] 229 | | handled = true; [INFO] [stderr] 230 | | Ok(()) [INFO] [stderr] 231 | | }, [INFO] [stderr] 232 | | Err(_) => { Ok(()) }, [INFO] [stderr] 233 | | }); [INFO] [stderr] | |___________- in this macro invocation [INFO] [stderr] | [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] 206 | if let Err(err) = out { handle!(disconnecting { [INFO] [stderr] 207 | Ok(Ready(_)) => { [INFO] [stderr] 208 | handled = true; [INFO] [stderr] 209 | Ok(()) [INFO] [stderr] 210 | }, [INFO] [stderr] 211 | Err(_) => { Ok(()) }, [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/conn/pool/mod.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / match out { [INFO] [stderr] 207 | | Err(err) => { [INFO] [stderr] 208 | | // early return in case of error [INFO] [stderr] 209 | | while let Some(i) = done_fut_idxs.pop() { [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => (), [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] ... [INFO] [stderr] 236 | / handle!(dropping { [INFO] [stderr] 237 | | Ok(Ready(conn)) => { [INFO] [stderr] 238 | | let closed = self.inner_ref().closed; [INFO] [stderr] 239 | | if closed { [INFO] [stderr] ... | [INFO] [stderr] 247 | | Err(_) => { Ok(()) }, [INFO] [stderr] 248 | | }); [INFO] [stderr] | |___________- in this macro invocation [INFO] [stderr] | [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] 206 | if let Err(err) = out { handle!(dropping { [INFO] [stderr] 207 | Ok(Ready(conn)) => { [INFO] [stderr] 208 | let closed = self.inner_ref().closed; [INFO] [stderr] 209 | if closed { [INFO] [stderr] 210 | self.inner_ref().disconnecting.push(conn.disconnect()); [INFO] [stderr] 211 | } else { [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/conn/pool/mod.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / match out { [INFO] [stderr] 207 | | Err(err) => { [INFO] [stderr] 208 | | // early return in case of error [INFO] [stderr] 209 | | while let Some(i) = done_fut_idxs.pop() { [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => (), [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] ... [INFO] [stderr] 251 | / handle!(rollback { [INFO] [stderr] 252 | | Ok(Ready(conn)) => { [INFO] [stderr] 253 | | let closed = self.inner_ref().closed; [INFO] [stderr] 254 | | if closed { [INFO] [stderr] ... | [INFO] [stderr] 262 | | Err(_) => { Ok(()) }, [INFO] [stderr] 263 | | }); [INFO] [stderr] | |___________- in this macro invocation [INFO] [stderr] | [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] 206 | if let Err(err) = out { handle!(rollback { [INFO] [stderr] 207 | Ok(Ready(conn)) => { [INFO] [stderr] 208 | let closed = self.inner_ref().closed; [INFO] [stderr] 209 | if closed { [INFO] [stderr] 210 | self.inner_ref().disconnecting.push(conn.disconnect()); [INFO] [stderr] 211 | } else { [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/conn/pool/mod.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / match out { [INFO] [stderr] 207 | | Err(err) => { [INFO] [stderr] 208 | | // early return in case of error [INFO] [stderr] 209 | | while let Some(i) = done_fut_idxs.pop() { [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => (), [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] ... [INFO] [stderr] 266 | / handle!(new { [INFO] [stderr] 267 | | Ok(Ready(conn)) => { [INFO] [stderr] 268 | | let closed = self.inner_ref().closed; [INFO] [stderr] 269 | | if closed { [INFO] [stderr] ... | [INFO] [stderr] 284 | | }, [INFO] [stderr] 285 | | }); [INFO] [stderr] | |___________- in this macro invocation [INFO] [stderr] | [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] 206 | if let Err(err) = out { handle!(new { [INFO] [stderr] 207 | Ok(Ready(conn)) => { [INFO] [stderr] 208 | let closed = self.inner_ref().closed; [INFO] [stderr] 209 | if closed { [INFO] [stderr] 210 | self.inner_ref().disconnecting.push(conn.disconnect()); [INFO] [stderr] 211 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/conn/stmt_cache.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | / pub fn iter<'a>(&'a self) -> Iter<'a, String> { [INFO] [stderr] 72 | | self.order.iter() [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/conn/mod.rs:234:51 [INFO] [stderr] | [INFO] [stderr] 234 | self.opts.get_user().as_ref().map(|x| x.as_ref()), [INFO] [stderr] | ^^^^^^^^^^ help: try this: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/conn/mod.rs:235:54 [INFO] [stderr] | [INFO] [stderr] 235 | self.opts.get_db_name().as_ref().map(|x| x.as_ref()), [INFO] [stderr] | ^^^^^^^^^^ help: try this: `x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/conn/mod.rs:252:60 [INFO] [stderr] | [INFO] [stderr] 252 | let mut pass = self.opts.get_pass().map(Vec::from).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: the loop variable `i` is used to index `pass` [INFO] [stderr] --> src/conn/mod.rs:268:42 [INFO] [stderr] | [INFO] [stderr] 268 | for i in 0..pass.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 268 | for (i, ) in pass.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/conn/mod.rs:308:5 [INFO] [stderr] | [INFO] [stderr] 308 | / pub fn new>(opts: T) -> impl MyFuture { [INFO] [stderr] 309 | | let mut conn = Conn::empty(opts.into()); [INFO] [stderr] 310 | | [INFO] [stderr] 311 | | Stream::connect((conn.opts.get_ip_or_hostname(), conn.opts.get_tcp_port())) [INFO] [stderr] ... | [INFO] [stderr] 324 | | .and_then(Conn::run_init_commands) [INFO] [stderr] 325 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/conn/mod.rs:348:19 [INFO] [stderr] | [INFO] [stderr] 348 | let ttl = self.opts.get_conn_ttl().unwrap_or(self.wait_timeout) as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.opts.get_conn_ttl().unwrap_or(self.wait_timeout))` [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: statement can be reduced [INFO] [stderr] --> src/conn/mod.rs:553:9 [INFO] [stderr] | [INFO] [stderr] 553 | A(get_opts()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `get_opts();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/conn/mod.rs:560:23 [INFO] [stderr] | [INFO] [stderr] 560 | .and_then(|conn| Queryable::disconnect(conn)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Queryable::disconnect` [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/conn/mod.rs:559:23 [INFO] [stderr] | [INFO] [stderr] 559 | .and_then(|conn| Queryable::ping(conn)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Queryable::ping` [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: redundant closure found [INFO] [stderr] --> src/conn/mod.rs:743:43 [INFO] [stderr] | [INFO] [stderr] 743 | .and_then(|result| result.map(|row| from_row::<(String, u8)>(row))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `from_row::<(String, u8)>` [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: redundant closure found [INFO] [stderr] --> src/conn/mod.rs:823:58 [INFO] [stderr] | [INFO] [stderr] 823 | .and_then(|r| r.map_and_drop(|row| from_row::(row))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `from_row::` [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: redundant closure found [INFO] [stderr] --> src/conn/mod.rs:919:52 [INFO] [stderr] | [INFO] [stderr] 919 | .and_then(|result| result.map_and_drop(|row| from_row::<(String,)>(row))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `from_row::<(String,)>` [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: redundant closure found [INFO] [stderr] --> src/conn/mod.rs:954:37 [INFO] [stderr] | [INFO] [stderr] 954 | result.map_and_drop(|row| from_row::<(String, String, String, u8)>(row)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `from_row::<(String, String, String, u8)>` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/connection_like/mod.rs:232:42 [INFO] [stderr] | [INFO] [stderr] 232 | fn get_cached_stmt(&mut self, query: &String) -> Option<&InnerStmt> { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/connection_like/mod.rs:290:53 [INFO] [stderr] | [INFO] [stderr] 290 | let params = if packets.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!packets.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/connection_like/mod.rs:328:54 [INFO] [stderr] | [INFO] [stderr] 328 | let columns = if packets.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!packets.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/errors.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | / error_chain! { [INFO] [stderr] 17 | | foreign_links { [INFO] [stderr] 18 | | Io(io::Error); [INFO] [stderr] 19 | | UrlParseError(url::ParseError); [INFO] [stderr] ... | [INFO] [stderr] 102 | | } [INFO] [stderr] 103 | | } [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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/macros.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | $($step($ty),)+ [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] ::: src/io/futures/connecting_stream.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | / steps! { [INFO] [stderr] 26 | | ConnectingStream { [INFO] [stderr] 27 | | WaitForStream(SelectOk), [INFO] [stderr] 28 | | Fail(Failed<(), Error>), [INFO] [stderr] 29 | | } [INFO] [stderr] 30 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [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] 28 | Fail(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/io/futures/connecting_stream.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | if streams.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!streams.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/io/futures/write_packet.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 29 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/io/mod.rs:67:53 [INFO] [stderr] | [INFO] [stderr] 67 | let ms = ms.map(|val| Duration::from_millis(val as u64)); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(val)` [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: length comparison to zero [INFO] [stderr] --> src/local_infile_handler/builtin.rs:98:24 [INFO] [stderr] | [INFO] [stderr] 98 | if data_buf.len() == 0 && !buf.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data_buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/opts.rs:154:16 [INFO] [stderr] | [INFO] [stderr] 154 | } else if self.ip_or_hostname == "localhost" { [INFO] [stderr] | ________________^ [INFO] [stderr] 155 | | true [INFO] [stderr] 156 | | } else { [INFO] [stderr] 157 | | false [INFO] [stderr] 158 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `self.ip_or_hostname == "localhost"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/opts.rs:197:9 [INFO] [stderr] | [INFO] [stderr] 197 | self.tcp_keepalive.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.tcp_keepalive` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/opts.rs:467:10 [INFO] [stderr] | [INFO] [stderr] 467 | .unwrap_or("127.0.0.1".into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "127.0.0.1".into())` [INFO] [stderr] | [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/queryable/query_result/mod.rs:278:39 [INFO] [stderr] | [INFO] [stderr] 278 | pub fn map(self, fun: F) -> Either), Error>, Map> [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/queryable/query_result/mod.rs:315:10 [INFO] [stderr] | [INFO] [stderr] 315 | ) -> Either, Reduce> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/queryable/query_result/mod.rs:353:30 [INFO] [stderr] | [INFO] [stderr] 353 | .map(|new_this| Loop::Continue(new_this)))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Loop::Continue` [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: replacing an `Option` with `None` [INFO] [stderr] --> src/queryable/query_result/mod.rs:414:40 [INFO] [stderr] | [INFO] [stderr] 414 | let actual_conn_like = mem::replace(conn_like, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `conn_like.take()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mem_replace_option_with_none)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/queryable/stmt.rs:361:17 [INFO] [stderr] | [INFO] [stderr] 361 | params_def: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Column]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/queryable/stmt.rs:369:22 [INFO] [stderr] | [INFO] [stderr] 369 | writer.write_all(null_bitmap.storage().as_ref()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `null_bitmap.storage()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/queryable/transaction.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / fn new(conn_like: T, options: TransactionOptions) -> impl MyFuture> { [INFO] [stderr] 102 | | let TransactionOptions { [INFO] [stderr] 103 | | consistent_snapshot, [INFO] [stderr] 104 | | isolation_level, [INFO] [stderr] ... | [INFO] [stderr] 150 | | B(fut) [INFO] [stderr] 151 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 26.58s [INFO] running `"docker" "inspect" "cd2c5d1cc468b2b3b0432df11bb3980fc631512b800f5caaefbe657a451e7d6d"` [INFO] running `"docker" "rm" "-f" "cd2c5d1cc468b2b3b0432df11bb3980fc631512b800f5caaefbe657a451e7d6d"` [INFO] [stdout] cd2c5d1cc468b2b3b0432df11bb3980fc631512b800f5caaefbe657a451e7d6d