[INFO] crate mio_httpc 0.7.0 is already in cache [INFO] extracting crate mio_httpc 0.7.0 into work/ex/clippy-test-run/sources/stable/reg/mio_httpc/0.7.0 [INFO] extracting crate mio_httpc 0.7.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mio_httpc/0.7.0 [INFO] validating manifest of mio_httpc-0.7.0 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 mio_httpc-0.7.0 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 mio_httpc-0.7.0 [INFO] finished frobbing mio_httpc-0.7.0 [INFO] frobbed toml for mio_httpc-0.7.0 written to work/ex/clippy-test-run/sources/stable/reg/mio_httpc/0.7.0/Cargo.toml [INFO] started frobbing mio_httpc-0.7.0 [INFO] finished frobbing mio_httpc-0.7.0 [INFO] frobbed toml for mio_httpc-0.7.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mio_httpc/0.7.0/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 mio_httpc-0.7.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/mio_httpc/0.7.0:/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] f8e8073e7faaf0c97910305566472e4379a5cf6f8e7086f88d9cbfa854849cc1 [INFO] running `"docker" "start" "-a" "f8e8073e7faaf0c97910305566472e4379a5cf6f8e7086f88d9cbfa854849cc1"` [INFO] [stderr] Compiling mio_httpc v0.7.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dns_parser/builder.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dns_parser/name.rs:80:17 [INFO] [stderr] | [INFO] [stderr] 80 | original: original, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `original` [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/dns_parser/name.rs:85:17 [INFO] [stderr] | [INFO] [stderr] 85 | original: original, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `original` [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/dns_parser/parser.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | qtype: qtype, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `qtype` [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/dns_parser/parser.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | prefer_unicast: prefer_unicast, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prefer_unicast` [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/dns_parser/parser.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | qclass: qclass, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `qclass` [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/dns_parser/parser.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | header: header, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `header` [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/dns_parser/parser.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | questions: questions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `questions` [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/dns_parser/parser.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | answers: answers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `answers` [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/dns_parser/parser.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | nameservers: nameservers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `nameservers` [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/dns_parser/parser.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | additional: additional, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `additional` [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/dns_parser/parser.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | opt: opt, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `opt` [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/dns_parser/parser.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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/dns_parser/parser.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | multicast_unique: multicast_unique, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `multicast_unique` [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/dns_parser/parser.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | cls: cls, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cls` [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/dns_parser/parser.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | ttl: ttl, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ttl` [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/dns_parser/parser.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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/dns_parser/parser.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | udp: udp, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `udp` [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/dns_parser/parser.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | extrcode: extrcode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `extrcode` [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/dns_parser/parser.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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/dns_parser/parser.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/dns_parser/parser.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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/dns_parser/builder.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dns_parser/name.rs:80:17 [INFO] [stderr] | [INFO] [stderr] 80 | original: original, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `original` [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/dns_parser/name.rs:85:17 [INFO] [stderr] | [INFO] [stderr] 85 | original: original, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `original` [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/dns_parser/parser.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | qtype: qtype, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `qtype` [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/dns_parser/parser.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | prefer_unicast: prefer_unicast, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prefer_unicast` [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/dns_parser/parser.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | qclass: qclass, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `qclass` [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/dns_parser/parser.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | header: header, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `header` [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/dns_parser/parser.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | questions: questions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `questions` [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/dns_parser/parser.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | answers: answers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `answers` [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/dns_parser/parser.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | nameservers: nameservers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `nameservers` [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/dns_parser/parser.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | additional: additional, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `additional` [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/dns_parser/parser.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | opt: opt, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `opt` [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/dns_parser/parser.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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/dns_parser/parser.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | multicast_unique: multicast_unique, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `multicast_unique` [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/dns_parser/parser.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | cls: cls, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cls` [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/dns_parser/parser.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | ttl: ttl, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ttl` [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/dns_parser/parser.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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/dns_parser/parser.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | udp: udp, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `udp` [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/dns_parser/parser.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | extrcode: extrcode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `extrcode` [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/dns_parser/parser.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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/dns_parser/parser.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/dns_parser/parser.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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/dns_parser/rrdata.rs:77:21 [INFO] [stderr] | [INFO] [stderr] 77 | mailbox: mailbox, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `mailbox` [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/dns_parser/rrdata.rs:77:21 [INFO] [stderr] | [INFO] [stderr] 77 | mailbox: mailbox, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `mailbox` [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: this if statement can be collapsed [INFO] [stderr] --> src/api/builder.rs:210:17 [INFO] [stderr] | [INFO] [stderr] 210 | / if call.is_call(&cref) { [INFO] [stderr] 211 | | if call.perform(&mut htp, &poll)? { [INFO] [stderr] 212 | | if let Some((mut resp, v)) = call.finish() { [INFO] [stderr] 213 | | return Ok((resp, v)); [INFO] [stderr] ... | [INFO] [stderr] 216 | | } [INFO] [stderr] 217 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 210 | if call.is_call(&cref) && call.perform(&mut htp, &poll)? { [INFO] [stderr] 211 | if let Some((mut resp, v)) = call.finish() { [INFO] [stderr] 212 | return Ok((resp, v)); [INFO] [stderr] 213 | } [INFO] [stderr] 214 | return Ok((::Response::new(), Vec::new())); [INFO] [stderr] 215 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/call.rs:341:17 [INFO] [stderr] | [INFO] [stderr] 341 | return Ok(SendStateInt::Done); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(SendStateInt::Done)` [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 return statement [INFO] [stderr] --> src/call.rs:343:41 [INFO] [stderr] | [INFO] [stderr] 343 | Dir::Receiving(_, false) => return Ok(SendStateInt::Receiving), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(SendStateInt::Receiving)` [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/call.rs:404:17 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(RecvStateInt::Done); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(RecvStateInt::Done)` [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/call.rs:614:17 [INFO] [stderr] | [INFO] [stderr] 614 | return Err(::Error::Closed); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(::Error::Closed)` [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/call.rs:648:33 [INFO] [stderr] | [INFO] [stderr] 648 | return Ok(RecvStateInt::Response(resp, ::ResponseBody::Streamed)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(RecvStateInt::Response(resp, ::ResponseBody::Streamed))` [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/call.rs:650:33 [INFO] [stderr] | [INFO] [stderr] 650 | / return Ok(RecvStateInt::Response( [INFO] [stderr] 651 | | resp, [INFO] [stderr] 652 | | ::ResponseBody::Sized(self.body_sz), [INFO] [stderr] 653 | | )); [INFO] [stderr] | |___________________________________^ [INFO] [stderr] | [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] 650 | Ok(RecvStateInt::Response( [INFO] [stderr] 651 | resp, [INFO] [stderr] 652 | ::ResponseBody::Sized(self.body_sz), [INFO] [stderr] 653 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/call.rs:657:29 [INFO] [stderr] | [INFO] [stderr] 657 | return Err(e); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(e)` [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/call.rs:683:21 [INFO] [stderr] | [INFO] [stderr] 683 | return Ok(RecvStateInt::ReceivedBody(bytes_rec)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(RecvStateInt::ReceivedBody(bytes_rec))` [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/call.rs:695:17 [INFO] [stderr] | [INFO] [stderr] 695 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(From::from(e))` [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: this if statement can be collapsed [INFO] [stderr] --> src/call.rs:673:25 [INFO] [stderr] | [INFO] [stderr] 673 | / if self.b.chunked_parse { [INFO] [stderr] 674 | | if self.chunked.check_done(self.b.max_chunk, &buf)? { [INFO] [stderr] 675 | | chunked_done = true; [INFO] [stderr] 676 | | self.dir = Dir::Done; [INFO] [stderr] 677 | | } [INFO] [stderr] 678 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 673 | if self.b.chunked_parse && self.chunked.check_done(self.b.max_chunk, &buf)? { [INFO] [stderr] 674 | chunked_done = true; [INFO] [stderr] 675 | self.dir = Dir::Done; [INFO] [stderr] 676 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/call.rs:811:17 [INFO] [stderr] | [INFO] [stderr] 811 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/call.rs:813:46 [INFO] [stderr] | [INFO] [stderr] 813 | Ok(httparse::Status::Partial) => return Ok(()), [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/call.rs:815:17 [INFO] [stderr] | [INFO] [stderr] 815 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(From::from(e))` [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: this if statement can be collapsed [INFO] [stderr] --> src/call.rs:803:17 [INFO] [stderr] | [INFO] [stderr] 803 | / if self.b.chunked_parse { [INFO] [stderr] 804 | | if self [INFO] [stderr] 805 | | .chunked [INFO] [stderr] 806 | | .check_done(self.b.max_chunk, &buf[self.hdr_sz..])? [INFO] [stderr] ... | [INFO] [stderr] 809 | | } [INFO] [stderr] 810 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 803 | if self.b.chunked_parse && self [INFO] [stderr] 804 | .chunked [INFO] [stderr] 805 | .check_done(self.b.max_chunk, &buf[self.hdr_sz..])? { [INFO] [stderr] 806 | self.dir = Dir::Done; [INFO] [stderr] 807 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/connection.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | return Ok(tcp); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(tcp)` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/httpc.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | b [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/httpc.rs:135:21 [INFO] [stderr] | [INFO] [stderr] 135 | let b = Vec::with_capacity(BUF_SZ); [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 return statement [INFO] [stderr] --> src/httpc.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | return SendState::Done; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Done` [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/httpc.rs:208:17 [INFO] [stderr] | [INFO] [stderr] 208 | return SendState::Receiving; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Receiving` [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/httpc.rs:211:17 [INFO] [stderr] | [INFO] [stderr] 211 | return SendState::SentBody(sz); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::SentBody(sz)` [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/httpc.rs:214:17 [INFO] [stderr] | [INFO] [stderr] 214 | return SendState::Wait; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Wait` [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/httpc.rs:217:17 [INFO] [stderr] | [INFO] [stderr] 217 | return SendState::WaitReqBody; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::WaitReqBody` [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/httpc.rs:226:25 [INFO] [stderr] | [INFO] [stderr] 226 | return SendState::Wait; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Wait` [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/httpc.rs:229:25 [INFO] [stderr] | [INFO] [stderr] 229 | return SendState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Error(e)` [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/httpc.rs:236:17 [INFO] [stderr] | [INFO] [stderr] 236 | return SendState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Error(e)` [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/httpc.rs:262:17 [INFO] [stderr] | [INFO] [stderr] 262 | return RecvState::Response(r, ::ResponseBody::Sized(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Response(r, ::ResponseBody::Sized(0))` [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/httpc.rs:267:17 [INFO] [stderr] | [INFO] [stderr] 267 | return RecvState::Done; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Done` [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/httpc.rs:272:17 [INFO] [stderr] | [INFO] [stderr] 272 | return RecvState::DoneWithBody(body); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::DoneWithBody(body)` [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/httpc.rs:281:25 [INFO] [stderr] | [INFO] [stderr] 281 | return RecvState::Sending; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Sending` [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/httpc.rs:284:25 [INFO] [stderr] | [INFO] [stderr] 284 | return RecvState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Error(e)` [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/httpc.rs:306:17 [INFO] [stderr] | [INFO] [stderr] 306 | return RecvState::Response(r, ::ResponseBody::Sized(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Response(r, ::ResponseBody::Sized(0))` [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/httpc.rs:319:25 [INFO] [stderr] | [INFO] [stderr] 319 | return RecvState::Sending; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Sending` [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/httpc.rs:322:25 [INFO] [stderr] | [INFO] [stderr] 322 | return RecvState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Error(e)` [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/httpc.rs:333:25 [INFO] [stderr] | [INFO] [stderr] 333 | return RecvState::Sending; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Sending` [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/httpc.rs:336:25 [INFO] [stderr] | [INFO] [stderr] 336 | return RecvState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Error(e)` [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/httpc.rs:341:17 [INFO] [stderr] | [INFO] [stderr] 341 | return RecvState::Sending; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Sending` [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/httpc.rs:344:17 [INFO] [stderr] | [INFO] [stderr] 344 | return RecvState::ReceivedBody(b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::ReceivedBody(b)` [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/httpc.rs:347:17 [INFO] [stderr] | [INFO] [stderr] 347 | return RecvState::Wait; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Wait` [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/httpc.rs:350:17 [INFO] [stderr] | [INFO] [stderr] 350 | return RecvState::Response(a, b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Response(a, b)` [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/httpc.rs:358:17 [INFO] [stderr] | [INFO] [stderr] 358 | return RecvState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Error(e)` [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: this if statement can be collapsed [INFO] [stderr] --> src/api/builder.rs:210:17 [INFO] [stderr] | [INFO] [stderr] 210 | / if call.is_call(&cref) { [INFO] [stderr] 211 | | if call.perform(&mut htp, &poll)? { [INFO] [stderr] 212 | | if let Some((mut resp, v)) = call.finish() { [INFO] [stderr] 213 | | return Ok((resp, v)); [INFO] [stderr] ... | [INFO] [stderr] 216 | | } [INFO] [stderr] 217 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 210 | if call.is_call(&cref) && call.perform(&mut htp, &poll)? { [INFO] [stderr] 211 | if let Some((mut resp, v)) = call.finish() { [INFO] [stderr] 212 | return Ok((resp, v)); [INFO] [stderr] 213 | } [INFO] [stderr] 214 | return Ok((::Response::new(), Vec::new())); [INFO] [stderr] 215 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/call.rs:341:17 [INFO] [stderr] | [INFO] [stderr] 341 | return Ok(SendStateInt::Done); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(SendStateInt::Done)` [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 return statement [INFO] [stderr] --> src/call.rs:343:41 [INFO] [stderr] | [INFO] [stderr] 343 | Dir::Receiving(_, false) => return Ok(SendStateInt::Receiving), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(SendStateInt::Receiving)` [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/call.rs:404:17 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(RecvStateInt::Done); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(RecvStateInt::Done)` [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/call.rs:614:17 [INFO] [stderr] | [INFO] [stderr] 614 | return Err(::Error::Closed); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(::Error::Closed)` [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/call.rs:648:33 [INFO] [stderr] | [INFO] [stderr] 648 | return Ok(RecvStateInt::Response(resp, ::ResponseBody::Streamed)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(RecvStateInt::Response(resp, ::ResponseBody::Streamed))` [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/call.rs:650:33 [INFO] [stderr] | [INFO] [stderr] 650 | / return Ok(RecvStateInt::Response( [INFO] [stderr] 651 | | resp, [INFO] [stderr] 652 | | ::ResponseBody::Sized(self.body_sz), [INFO] [stderr] 653 | | )); [INFO] [stderr] | |___________________________________^ [INFO] [stderr] | [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] 650 | Ok(RecvStateInt::Response( [INFO] [stderr] 651 | resp, [INFO] [stderr] 652 | ::ResponseBody::Sized(self.body_sz), [INFO] [stderr] 653 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/call.rs:657:29 [INFO] [stderr] | [INFO] [stderr] 657 | return Err(e); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(e)` [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/call.rs:683:21 [INFO] [stderr] | [INFO] [stderr] 683 | return Ok(RecvStateInt::ReceivedBody(bytes_rec)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(RecvStateInt::ReceivedBody(bytes_rec))` [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/call.rs:695:17 [INFO] [stderr] | [INFO] [stderr] 695 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(From::from(e))` [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: this if statement can be collapsed [INFO] [stderr] --> src/call.rs:673:25 [INFO] [stderr] | [INFO] [stderr] 673 | / if self.b.chunked_parse { [INFO] [stderr] 674 | | if self.chunked.check_done(self.b.max_chunk, &buf)? { [INFO] [stderr] 675 | | chunked_done = true; [INFO] [stderr] 676 | | self.dir = Dir::Done; [INFO] [stderr] 677 | | } [INFO] [stderr] 678 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 673 | if self.b.chunked_parse && self.chunked.check_done(self.b.max_chunk, &buf)? { [INFO] [stderr] 674 | chunked_done = true; [INFO] [stderr] 675 | self.dir = Dir::Done; [INFO] [stderr] 676 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/call.rs:811:17 [INFO] [stderr] | [INFO] [stderr] 811 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/call.rs:813:46 [INFO] [stderr] | [INFO] [stderr] 813 | Ok(httparse::Status::Partial) => return Ok(()), [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/call.rs:815:17 [INFO] [stderr] | [INFO] [stderr] 815 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(From::from(e))` [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: this if statement can be collapsed [INFO] [stderr] --> src/call.rs:803:17 [INFO] [stderr] | [INFO] [stderr] 803 | / if self.b.chunked_parse { [INFO] [stderr] 804 | | if self [INFO] [stderr] 805 | | .chunked [INFO] [stderr] 806 | | .check_done(self.b.max_chunk, &buf[self.hdr_sz..])? [INFO] [stderr] ... | [INFO] [stderr] 809 | | } [INFO] [stderr] 810 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 803 | if self.b.chunked_parse && self [INFO] [stderr] 804 | .chunked [INFO] [stderr] 805 | .check_done(self.b.max_chunk, &buf[self.hdr_sz..])? { [INFO] [stderr] 806 | self.dir = Dir::Done; [INFO] [stderr] 807 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/connection.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | return Ok(tcp); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(tcp)` [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: long literal lacking separators [INFO] [stderr] --> src/dns_parser/parser.rs:347:47 [INFO] [stderr] | [INFO] [stderr] 347 | assert_eq!(packet.nameservers[0].ttl, 120275); [INFO] [stderr] | ^^^^^^ help: consider: `120_275` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/dns_parser/parser.rs:401:44 [INFO] [stderr] | [INFO] [stderr] 401 | assert_eq!(soa_rec.serial, 2012031603); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_012_031_603` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/dns_parser/parser.rs:509:47 [INFO] [stderr] | [INFO] [stderr] 509 | assert_eq!(packet.nameservers[0].ttl, 120275); [INFO] [stderr] | ^^^^^^ help: consider: `120_275` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/dns_parser/parser.rs:692:19 [INFO] [stderr] | [INFO] [stderr] 692 | match *&packet.answers[i].data { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `packet.answers[i].data` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deref_addrof)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/dns_parser/parser.rs:755:19 [INFO] [stderr] | [INFO] [stderr] 755 | match *&packet.answers[i].data { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `packet.answers[i].data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/httpc.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | b [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/httpc.rs:135:21 [INFO] [stderr] | [INFO] [stderr] 135 | let b = Vec::with_capacity(BUF_SZ); [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 return statement [INFO] [stderr] --> src/httpc.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | return SendState::Done; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Done` [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/httpc.rs:208:17 [INFO] [stderr] | [INFO] [stderr] 208 | return SendState::Receiving; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Receiving` [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/httpc.rs:211:17 [INFO] [stderr] | [INFO] [stderr] 211 | return SendState::SentBody(sz); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::SentBody(sz)` [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/httpc.rs:214:17 [INFO] [stderr] | [INFO] [stderr] 214 | return SendState::Wait; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Wait` [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/httpc.rs:217:17 [INFO] [stderr] | [INFO] [stderr] 217 | return SendState::WaitReqBody; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::WaitReqBody` [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/httpc.rs:226:25 [INFO] [stderr] | [INFO] [stderr] 226 | return SendState::Wait; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Wait` [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/httpc.rs:229:25 [INFO] [stderr] | [INFO] [stderr] 229 | return SendState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Error(e)` [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/httpc.rs:236:17 [INFO] [stderr] | [INFO] [stderr] 236 | return SendState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `SendState::Error(e)` [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/httpc.rs:262:17 [INFO] [stderr] | [INFO] [stderr] 262 | return RecvState::Response(r, ::ResponseBody::Sized(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Response(r, ::ResponseBody::Sized(0))` [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/httpc.rs:267:17 [INFO] [stderr] | [INFO] [stderr] 267 | return RecvState::Done; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Done` [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/httpc.rs:272:17 [INFO] [stderr] | [INFO] [stderr] 272 | return RecvState::DoneWithBody(body); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::DoneWithBody(body)` [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/httpc.rs:281:25 [INFO] [stderr] | [INFO] [stderr] 281 | return RecvState::Sending; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Sending` [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/httpc.rs:284:25 [INFO] [stderr] | [INFO] [stderr] 284 | return RecvState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Error(e)` [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/httpc.rs:306:17 [INFO] [stderr] | [INFO] [stderr] 306 | return RecvState::Response(r, ::ResponseBody::Sized(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Response(r, ::ResponseBody::Sized(0))` [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/httpc.rs:319:25 [INFO] [stderr] | [INFO] [stderr] 319 | return RecvState::Sending; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Sending` [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/httpc.rs:322:25 [INFO] [stderr] | [INFO] [stderr] 322 | return RecvState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Error(e)` [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/httpc.rs:333:25 [INFO] [stderr] | [INFO] [stderr] 333 | return RecvState::Sending; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Sending` [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/httpc.rs:336:25 [INFO] [stderr] | [INFO] [stderr] 336 | return RecvState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Error(e)` [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/httpc.rs:341:17 [INFO] [stderr] | [INFO] [stderr] 341 | return RecvState::Sending; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Sending` [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/httpc.rs:344:17 [INFO] [stderr] | [INFO] [stderr] 344 | return RecvState::ReceivedBody(b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::ReceivedBody(b)` [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/httpc.rs:347:17 [INFO] [stderr] | [INFO] [stderr] 347 | return RecvState::Wait; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Wait` [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/httpc.rs:350:17 [INFO] [stderr] | [INFO] [stderr] 350 | return RecvState::Response(a, b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Response(a, b)` [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/httpc.rs:358:17 [INFO] [stderr] | [INFO] [stderr] 358 | return RecvState::Error(e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RecvState::Error(e)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `raw`. [INFO] [stderr] --> src/api/mod.rs:46:18 [INFO] [stderr] | [INFO] [stderr] 46 | for i in 0..raw.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] 46 | for in &raw { [INFO] [stderr] | ^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/api/mod.rs:47:16 [INFO] [stderr] | [INFO] [stderr] 47 | if raw[i].name.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `raw[i].name.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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/api/mod.rs:242:22 [INFO] [stderr] | [INFO] [stderr] 242 | let con_id = con_id as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(con_id)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/api/mod.rs:243:23 [INFO] [stderr] | [INFO] [stderr] 243 | let call_id = call_id as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(call_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/api/mod.rs:284:22 [INFO] [stderr] | [INFO] [stderr] 284 | let con_id = con_id as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(con_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/api/mod.rs:285:23 [INFO] [stderr] | [INFO] [stderr] 285 | let call_id = call_id as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(call_id)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/api/websocket.rs:43:16 [INFO] [stderr] | [INFO] [stderr] 43 | fn is_init(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/websocket.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / if let &Some(ref b) = cid { [INFO] [stderr] 131 | | return self.id.0 == b.0; [INFO] [stderr] 132 | | } [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] 130 | if let Some(ref b) = *cid { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/websocket.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | / if let &Some(ref a) = a { [INFO] [stderr] 140 | | if let &Some(ref b) = b { [INFO] [stderr] 141 | | return a.id.0 == b.0; [INFO] [stderr] 142 | | } [INFO] [stderr] 143 | | } [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] 139 | if let Some(ref a) = *a { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/websocket.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | / if let &Some(ref b) = b { [INFO] [stderr] 141 | | return a.id.0 == b.0; [INFO] [stderr] 142 | | } [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] 140 | if let Some(ref b) = *b { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/api/websocket.rs:290:12 [INFO] [stderr] | [INFO] [stderr] 290 | if self.send_buf.len() > 0 && self.send_lover == 0 && self.curframe_pos == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.send_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: length comparison to zero [INFO] [stderr] --> src/api/websocket.rs:292:16 [INFO] [stderr] | [INFO] [stderr] 292 | if self.send_buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.send_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: identical conversion [INFO] [stderr] --> src/api/websocket.rs:360:21 [INFO] [stderr] | [INFO] [stderr] 360 | Err(From::from(e)) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `pkt`. [INFO] [stderr] --> src/api/websocket.rs:376:18 [INFO] [stderr] | [INFO] [stderr] 376 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [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] 376 | for in pkt.iter_mut().take(len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/api/websocket.rs:377:13 [INFO] [stderr] | [INFO] [stderr] 377 | pkt[i] = pkt[i] ^ mask[mpos]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pkt[i] ^= mask[mpos]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in src.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/api/websocket.rs:385:22 [INFO] [stderr] | [INFO] [stderr] 385 | for &byte in src.iter() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/api/websocket.rs:510:28 [INFO] [stderr] | [INFO] [stderr] 510 | let mut len: u64 = (b & 0b0111_1111) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(b & 0b0111_1111)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/api/websocket.rs:522:20 [INFO] [stderr] | [INFO] [stderr] 522 | len |= (*pkt.get(pos)?) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from((*pkt.get(pos)?))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/api/websocket.rs:525:18 [INFO] [stderr] | [INFO] [stderr] 525 | if len > u32::max_value() as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u32::max_value())` [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/api/websocket.rs:545:12 [INFO] [stderr] | [INFO] [stderr] 545 | if self.send_buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.send_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: length comparison to zero [INFO] [stderr] --> src/api/websocket.rs:554:16 [INFO] [stderr] | [INFO] [stderr] 554 | if self.send_buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.send_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: identical conversion [INFO] [stderr] --> src/api/websocket.rs:575:32 [INFO] [stderr] | [INFO] [stderr] 575 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/api/websocket.rs:600:36 [INFO] [stderr] | [INFO] [stderr] 600 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/simple_call.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | / if let &Some(ref b) = cid { [INFO] [stderr] 64 | | return self.id.0 == b.0; [INFO] [stderr] 65 | | } [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] 63 | if let Some(ref b) = *cid { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/simple_call.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | / if let &Some(ref a) = a { [INFO] [stderr] 73 | | if let &Some(ref b) = b { [INFO] [stderr] 74 | | return a.id.0 == b.0; [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [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] 72 | if let Some(ref a) = *a { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/simple_call.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | / if let &Some(ref b) = b { [INFO] [stderr] 74 | | return a.id.0 == b.0; [INFO] [stderr] 75 | | } [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] 73 | if let Some(ref b) = *b { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/api/simple_call.rs:104:32 [INFO] [stderr] | [INFO] [stderr] 104 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/api/simple_call.rs:130:36 [INFO] [stderr] | [INFO] [stderr] 130 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/api/simple_call.rs:134:25 [INFO] [stderr] | [INFO] [stderr] 134 | / match body { [INFO] [stderr] 135 | | ResponseBody::Sized(0) => { [INFO] [stderr] 136 | | self.state = State::Done; [INFO] [stderr] 137 | | return Ok(true); [INFO] [stderr] 138 | | } [INFO] [stderr] 139 | | _ => {} [INFO] [stderr] 140 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 134 | if let ResponseBody::Sized(0) = body { [INFO] [stderr] 135 | self.state = State::Done; [INFO] [stderr] 136 | return Ok(true); [INFO] [stderr] 137 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/api/builder.rs:39:15 [INFO] [stderr] | [INFO] [stderr] 39 | ..Default::default() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_update)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:58:49 [INFO] [stderr] | [INFO] [stderr] 58 | Dir::SendingBody(pos) if pos > 0 && self.b.body.len() == 0 => false, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.b.body.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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/call.rs:85:29 [INFO] [stderr] | [INFO] [stderr] 85 | self.buf_body.as_ptr().offset(*off as _), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buf_body.as_ptr().add(*off)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:94:23 [INFO] [stderr] | [INFO] [stderr] 94 | } else if self.buf_body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf_body.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/call.rs:115:23 [INFO] [stderr] | [INFO] [stderr] 115 | } else if self.buf_body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf_body.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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/call.rs:171:12 [INFO] [stderr] | [INFO] [stderr] 171 | if cl == false && self.b.body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!cl` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:171:27 [INFO] [stderr] | [INFO] [stderr] 171 | if cl == false && self.b.body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.body.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/call.rs:175:44 [INFO] [stderr] | [INFO] [stderr] 175 | } else if cl && !(self.b.digest && self.b.auth.hdr.len() == 0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.b.auth.hdr.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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/call.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | if self.b.ua_set == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.b.ua_set` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/call.rs:216:19 [INFO] [stderr] | [INFO] [stderr] 216 | } else if self.b.con_set == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.b.con_set` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/call.rs:219:12 [INFO] [stderr] | [INFO] [stderr] 219 | if self.b.host_set == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.b.host_set` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:224:29 [INFO] [stderr] | [INFO] [stderr] 224 | if self.b.digest && self.b.bytes.us.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.bytes.us.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/call.rs:225:16 [INFO] [stderr] | [INFO] [stderr] 225 | if self.b.auth.hdr.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.auth.hdr.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/call.rs:313:19 [INFO] [stderr] | [INFO] [stderr] 313 | } else if self.b.bytes.us.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.bytes.us.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: an inclusive range would be more readable [INFO] [stderr] --> src/call.rs:322:26 [INFO] [stderr] | [INFO] [stderr] 322 | (&mut ar[uslen..uslen + 1]).copy_from_slice(b":"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `uslen..=uslen` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:370:38 [INFO] [stderr] | [INFO] [stderr] 370 | Dir::SendingBody(pos) if self.b.body.len() > 0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.body.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/call.rs:476:24 [INFO] [stderr] | [INFO] [stderr] 476 | if self.buf_body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf_body.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/call.rs:511:16 [INFO] [stderr] | [INFO] [stderr] 511 | if b.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b.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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/call.rs:516:13 [INFO] [stderr] | [INFO] [stderr] 516 | / match &io_ret { [INFO] [stderr] 517 | | &Err(ref ie) => { [INFO] [stderr] 518 | | if ie.kind() == IoErrorKind::Interrupted { [INFO] [stderr] 519 | | continue; [INFO] [stderr] ... | [INFO] [stderr] 560 | | } [INFO] [stderr] 561 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 516 | match io_ret { [INFO] [stderr] 517 | Err(ref ie) => { [INFO] [stderr] 518 | if ie.kind() == IoErrorKind::Interrupted { [INFO] [stderr] 519 | continue; [INFO] [stderr] 520 | } else if ie.kind() == IoErrorKind::NotConnected { [INFO] [stderr] 521 | return Ok(SendStateInt::Wait); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/call.rs:584:13 [INFO] [stderr] | [INFO] [stderr] 584 | / match &io_ret { [INFO] [stderr] 585 | | &Err(ref ie) => { [INFO] [stderr] 586 | | if ie.kind() == IoErrorKind::Interrupted { [INFO] [stderr] 587 | | continue; [INFO] [stderr] ... | [INFO] [stderr] 605 | | _ => {} [INFO] [stderr] 606 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 584 | match io_ret { [INFO] [stderr] 585 | Err(ref ie) => { [INFO] [stderr] 586 | if ie.kind() == IoErrorKind::Interrupted { [INFO] [stderr] 587 | continue; [INFO] [stderr] 588 | } else if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 589 | buf.truncate(orig_len); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/call.rs:700:5 [INFO] [stderr] | [INFO] [stderr] 700 | / fn read_hdr( [INFO] [stderr] 701 | | &mut self, [INFO] [stderr] 702 | | con: &mut Con, [INFO] [stderr] 703 | | buf: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 817 | | } [INFO] [stderr] 818 | | } [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: length comparison to zero [INFO] [stderr] --> src/connection.rs:58:12 [INFO] [stderr] | [INFO] [stderr] 58 | if cb.bytes.host.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `cb.bytes.host.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 lifetime isn't used in the function definition [INFO] [stderr] --> src/connection.rs:206:22 [INFO] [stderr] | [INFO] [stderr] 206 | pub fn signalled<'a, C: TlsConnector, T>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [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/connection.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | / match &res { [INFO] [stderr] 293 | | &Err(ref ie) => { [INFO] [stderr] 294 | | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 295 | | self.set_signalled_rd(false); [INFO] [stderr] ... | [INFO] [stderr] 298 | | _ => {} [INFO] [stderr] 299 | | } [INFO] [stderr] | |_________^ [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] 292 | if let &Err(ref ie) = &res { [INFO] [stderr] 293 | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 294 | self.set_signalled_rd(false); [INFO] [stderr] 295 | } [INFO] [stderr] 296 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/connection.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | / match &res { [INFO] [stderr] 293 | | &Err(ref ie) => { [INFO] [stderr] 294 | | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 295 | | self.set_signalled_rd(false); [INFO] [stderr] ... | [INFO] [stderr] 298 | | _ => {} [INFO] [stderr] 299 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 292 | match res { [INFO] [stderr] 293 | Err(ref ie) => { [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/connection.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | / match &res { [INFO] [stderr] 317 | | &Err(ref ie) => { [INFO] [stderr] 318 | | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 319 | | self.set_signalled_wr(false); [INFO] [stderr] ... | [INFO] [stderr] 322 | | _ => {} [INFO] [stderr] 323 | | } [INFO] [stderr] | |_________^ [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] 316 | if let &Err(ref ie) = &res { [INFO] [stderr] 317 | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 318 | self.set_signalled_wr(false); [INFO] [stderr] 319 | } [INFO] [stderr] 320 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/connection.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | / match &res { [INFO] [stderr] 317 | | &Err(ref ie) => { [INFO] [stderr] 318 | | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 319 | | self.set_signalled_wr(false); [INFO] [stderr] ... | [INFO] [stderr] 322 | | _ => {} [INFO] [stderr] 323 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 316 | match res { [INFO] [stderr] 317 | Err(ref ie) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/connection.rs:480:16 [INFO] [stderr] | [INFO] [stderr] 480 | if calls.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `calls.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 variable `call_id` is used as a loop counter. Consider using `for (call_id, item) in calls.iter_mut().enumerate()` or similar iterators [INFO] [stderr] --> src/connection.rs:486:25 [INFO] [stderr] | [INFO] [stderr] 486 | for call in calls.iter_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/connection.rs:642:20 [INFO] [stderr] | [INFO] [stderr] 642 | if self.cons[con].1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.cons[con].1.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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/connection.rs:648:17 [INFO] [stderr] | [INFO] [stderr] 648 | / if self.keepalive.contains_key(&nh) { [INFO] [stderr] 649 | | let mut doclose = false; [INFO] [stderr] 650 | | { [INFO] [stderr] 651 | | if let Some(c) = self.keepalive.get(&nh) { [INFO] [stderr] ... | [INFO] [stderr] 661 | | self.keepalive.insert(nh, con as u16); [INFO] [stderr] 662 | | } [INFO] [stderr] | |_________________^ help: consider using: `self.keepalive.entry(nh)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_parser/header.rs:74:18 [INFO] [stderr] | [INFO] [stderr] 74 | flags |= Into::::into(self.response_code) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(Into::::into(self.response_code))` [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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/dns_parser/name.rs:48:24 [INFO] [stderr] | [INFO] [stderr] 48 | if let None = return_pos { [INFO] [stderr] | _________________- ^^^^ [INFO] [stderr] 49 | | return_pos = Some(pos); [INFO] [stderr] 50 | | } [INFO] [stderr] | |_________________- help: try this: `if return_pos.is_none()` [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: an inclusive range would be more readable [INFO] [stderr] --> src/dns_parser/name.rs:84:31 [INFO] [stderr] | [INFO] [stderr] 84 | labels: &data[..pos + 1], [INFO] [stderr] | ^^^^^^^^^ help: use: `..=pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/httpc.rs:69:25 [INFO] [stderr] | [INFO] [stderr] 69 | let con_id = if b.bytes.host.len() > 0 && b.evid == usize::max_value() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b.bytes.host.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/httpc.rs:122:33 [INFO] [stderr] | [INFO] [stderr] 122 | if b1.capacity() > 0 || b1.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b1.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/httpc.rs:125:33 [INFO] [stderr] | [INFO] [stderr] 125 | if b2.capacity() > 0 || b2.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b2.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/httpc.rs:311:20 [INFO] [stderr] | [INFO] [stderr] 311 | if b.auth.hdr.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b.auth.hdr.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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/httpc.rs:368:28 [INFO] [stderr] | [INFO] [stderr] 368 | if let Ok(_) = b.url(h.value) { [INFO] [stderr] | _____________________- ^^^^^ [INFO] [stderr] 369 | | return true; [INFO] [stderr] 370 | | } [INFO] [stderr] | |_____________________- help: try this: `if b.url(h.value).is_ok()` [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/httpc.rs:371:27 [INFO] [stderr] | [INFO] [stderr] 371 | } else if h.value.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!h.value.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: single-character string constant used as pattern [INFO] [stderr] --> src/httpc.rs:377:56 [INFO] [stderr] | [INFO] [stderr] 377 | let mut path_split = h.value.split("?"); [INFO] [stderr] | ^^^ help: try using a char instead: `'?'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/httpc.rs:382:28 [INFO] [stderr] | [INFO] [stderr] 382 | if query.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!query.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/resolve/mod.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 46 | if srvs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `srvs.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/resolve/mod.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | if srvs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `srvs.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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/resolve/mod.rs:101:20 [INFO] [stderr] | [INFO] [stderr] 101 | if let Ok(_) = Self::lookup_on(srvs, &sock, &mut pos, host) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 102 | | return Ok(sock); [INFO] [stderr] 103 | | } [INFO] [stderr] | |_____________- help: try this: `if Self::lookup_on(srvs, &sock, &mut pos, host).is_ok()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/resolve/mod.rs:138:20 [INFO] [stderr] | [INFO] [stderr] 138 | if let Ok(_) = res { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 139 | | return Ok(()); [INFO] [stderr] 140 | | } else if let Err(e) = res { [INFO] [stderr] 141 | | last_err = e; [INFO] [stderr] 142 | | } [INFO] [stderr] | |_____________- help: try this: `if res.is_ok()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:96:44 [INFO] [stderr] | [INFO] [stderr] 96 | Rule::auth_type => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 97 | | let s = inner_pair.into_span().as_str(); [INFO] [stderr] 98 | | if !s.eq_ignore_ascii_case("digest") { [INFO] [stderr] 99 | | return Err(::Error::AuthenticateParse); [INFO] [stderr] 100 | | } [INFO] [stderr] 101 | | break; [INFO] [stderr] 102 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:103:40 [INFO] [stderr] | [INFO] [stderr] 103 | Rule::realm => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 104 | | realm = inner_pair.into_span().as_str(); [INFO] [stderr] 105 | | break; [INFO] [stderr] 106 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:117:40 [INFO] [stderr] | [INFO] [stderr] 117 | Rule::nonce => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 118 | | nonce = inner_pair.into_span().as_str(); [INFO] [stderr] 119 | | break; [INFO] [stderr] 120 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:121:41 [INFO] [stderr] | [INFO] [stderr] 121 | Rule::opaque => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 122 | | opaque = inner_pair.into_span().as_str(); [INFO] [stderr] 123 | | break; [INFO] [stderr] 124 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:125:40 [INFO] [stderr] | [INFO] [stderr] 125 | Rule::stale => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 126 | | let s = inner_pair.into_span().as_str(); [INFO] [stderr] 127 | | if s.eq_ignore_ascii_case("true") { [INFO] [stderr] 128 | | stale = true; [INFO] [stderr] ... | [INFO] [stderr] 132 | | break; [INFO] [stderr] 133 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:134:44 [INFO] [stderr] | [INFO] [stderr] 134 | Rule::algorithm => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 135 | | let a = inner_pair.into_span().as_str(); [INFO] [stderr] 136 | | if a.eq_ignore_ascii_case("md5") { [INFO] [stderr] 137 | | alg = DigestAlg::MD5; [INFO] [stderr] ... | [INFO] [stderr] 141 | | break; [INFO] [stderr] 142 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/types.rs:232:44 [INFO] [stderr] | [INFO] [stderr] 232 | let src_p: *const u8 = src.as_ptr().offset(off as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `src.as_ptr().add(off)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/types.rs:233:42 [INFO] [stderr] | [INFO] [stderr] 233 | let dst_p: *mut u8 = src.as_mut_ptr().offset(hdr as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `src.as_mut_ptr().add(hdr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/types.rs:312:12 [INFO] [stderr] | [INFO] [stderr] 312 | if self.query.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.query.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/types.rs:475:12 [INFO] [stderr] | [INFO] [stderr] 475 | if self.bytes.query.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.bytes.query.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/types.rs:533:12 [INFO] [stderr] | [INFO] [stderr] 533 | if inpath.len() > 0 && inpath.as_bytes()[0] != b'/' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!inpath.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/types.rs:583:12 [INFO] [stderr] | [INFO] [stderr] 583 | if self.auth.hdr.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.auth.hdr.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/types.rs:619:12 [INFO] [stderr] | [INFO] [stderr] 619 | if self.bytes.us.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.bytes.us.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/types.rs:626:12 [INFO] [stderr] | [INFO] [stderr] 626 | if self.bytes.pw.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.bytes.pw.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/types.rs:643:12 [INFO] [stderr] | [INFO] [stderr] 643 | if self.bytes.path.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.bytes.path.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] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `mio_httpc`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: the loop variable `i` is only used to index `raw`. [INFO] [stderr] --> src/api/mod.rs:46:18 [INFO] [stderr] | [INFO] [stderr] 46 | for i in 0..raw.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] 46 | for in &raw { [INFO] [stderr] | ^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/api/mod.rs:47:16 [INFO] [stderr] | [INFO] [stderr] 47 | if raw[i].name.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `raw[i].name.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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/api/mod.rs:242:22 [INFO] [stderr] | [INFO] [stderr] 242 | let con_id = con_id as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(con_id)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/api/mod.rs:243:23 [INFO] [stderr] | [INFO] [stderr] 243 | let call_id = call_id as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(call_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/api/mod.rs:284:22 [INFO] [stderr] | [INFO] [stderr] 284 | let con_id = con_id as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(con_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/api/mod.rs:285:23 [INFO] [stderr] | [INFO] [stderr] 285 | let call_id = call_id as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(call_id)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/api/websocket.rs:43:16 [INFO] [stderr] | [INFO] [stderr] 43 | fn is_init(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/websocket.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / if let &Some(ref b) = cid { [INFO] [stderr] 131 | | return self.id.0 == b.0; [INFO] [stderr] 132 | | } [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] 130 | if let Some(ref b) = *cid { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/websocket.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | / if let &Some(ref a) = a { [INFO] [stderr] 140 | | if let &Some(ref b) = b { [INFO] [stderr] 141 | | return a.id.0 == b.0; [INFO] [stderr] 142 | | } [INFO] [stderr] 143 | | } [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] 139 | if let Some(ref a) = *a { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/websocket.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | / if let &Some(ref b) = b { [INFO] [stderr] 141 | | return a.id.0 == b.0; [INFO] [stderr] 142 | | } [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] 140 | if let Some(ref b) = *b { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/api/websocket.rs:290:12 [INFO] [stderr] | [INFO] [stderr] 290 | if self.send_buf.len() > 0 && self.send_lover == 0 && self.curframe_pos == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.send_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: length comparison to zero [INFO] [stderr] --> src/api/websocket.rs:292:16 [INFO] [stderr] | [INFO] [stderr] 292 | if self.send_buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.send_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: identical conversion [INFO] [stderr] --> src/api/websocket.rs:360:21 [INFO] [stderr] | [INFO] [stderr] 360 | Err(From::from(e)) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `pkt`. [INFO] [stderr] --> src/api/websocket.rs:376:18 [INFO] [stderr] | [INFO] [stderr] 376 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [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] 376 | for in pkt.iter_mut().take(len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/api/websocket.rs:377:13 [INFO] [stderr] | [INFO] [stderr] 377 | pkt[i] = pkt[i] ^ mask[mpos]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pkt[i] ^= mask[mpos]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in src.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/api/websocket.rs:385:22 [INFO] [stderr] | [INFO] [stderr] 385 | for &byte in src.iter() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/api/websocket.rs:510:28 [INFO] [stderr] | [INFO] [stderr] 510 | let mut len: u64 = (b & 0b0111_1111) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(b & 0b0111_1111)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/api/websocket.rs:522:20 [INFO] [stderr] | [INFO] [stderr] 522 | len |= (*pkt.get(pos)?) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from((*pkt.get(pos)?))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/api/websocket.rs:525:18 [INFO] [stderr] | [INFO] [stderr] 525 | if len > u32::max_value() as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u32::max_value())` [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/api/websocket.rs:545:12 [INFO] [stderr] | [INFO] [stderr] 545 | if self.send_buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.send_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: length comparison to zero [INFO] [stderr] --> src/api/websocket.rs:554:16 [INFO] [stderr] | [INFO] [stderr] 554 | if self.send_buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.send_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: identical conversion [INFO] [stderr] --> src/api/websocket.rs:575:32 [INFO] [stderr] | [INFO] [stderr] 575 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/api/websocket.rs:600:36 [INFO] [stderr] | [INFO] [stderr] 600 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/simple_call.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | / if let &Some(ref b) = cid { [INFO] [stderr] 64 | | return self.id.0 == b.0; [INFO] [stderr] 65 | | } [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] 63 | if let Some(ref b) = *cid { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/simple_call.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | / if let &Some(ref a) = a { [INFO] [stderr] 73 | | if let &Some(ref b) = b { [INFO] [stderr] 74 | | return a.id.0 == b.0; [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [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] 72 | if let Some(ref a) = *a { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/api/simple_call.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | / if let &Some(ref b) = b { [INFO] [stderr] 74 | | return a.id.0 == b.0; [INFO] [stderr] 75 | | } [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] 73 | if let Some(ref b) = *b { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/api/simple_call.rs:104:32 [INFO] [stderr] | [INFO] [stderr] 104 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/api/simple_call.rs:130:36 [INFO] [stderr] | [INFO] [stderr] 130 | return Err(From::from(e)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `From::from()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/api/simple_call.rs:134:25 [INFO] [stderr] | [INFO] [stderr] 134 | / match body { [INFO] [stderr] 135 | | ResponseBody::Sized(0) => { [INFO] [stderr] 136 | | self.state = State::Done; [INFO] [stderr] 137 | | return Ok(true); [INFO] [stderr] 138 | | } [INFO] [stderr] 139 | | _ => {} [INFO] [stderr] 140 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 134 | if let ResponseBody::Sized(0) = body { [INFO] [stderr] 135 | self.state = State::Done; [INFO] [stderr] 136 | return Ok(true); [INFO] [stderr] 137 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/api/builder.rs:39:15 [INFO] [stderr] | [INFO] [stderr] 39 | ..Default::default() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_update)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:58:49 [INFO] [stderr] | [INFO] [stderr] 58 | Dir::SendingBody(pos) if pos > 0 && self.b.body.len() == 0 => false, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.b.body.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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/call.rs:85:29 [INFO] [stderr] | [INFO] [stderr] 85 | self.buf_body.as_ptr().offset(*off as _), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.buf_body.as_ptr().add(*off)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:94:23 [INFO] [stderr] | [INFO] [stderr] 94 | } else if self.buf_body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf_body.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/call.rs:115:23 [INFO] [stderr] | [INFO] [stderr] 115 | } else if self.buf_body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf_body.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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/call.rs:171:12 [INFO] [stderr] | [INFO] [stderr] 171 | if cl == false && self.b.body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!cl` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:171:27 [INFO] [stderr] | [INFO] [stderr] 171 | if cl == false && self.b.body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.body.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/call.rs:175:44 [INFO] [stderr] | [INFO] [stderr] 175 | } else if cl && !(self.b.digest && self.b.auth.hdr.len() == 0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.b.auth.hdr.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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/call.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | if self.b.ua_set == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.b.ua_set` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/call.rs:216:19 [INFO] [stderr] | [INFO] [stderr] 216 | } else if self.b.con_set == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.b.con_set` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/call.rs:219:12 [INFO] [stderr] | [INFO] [stderr] 219 | if self.b.host_set == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.b.host_set` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:224:29 [INFO] [stderr] | [INFO] [stderr] 224 | if self.b.digest && self.b.bytes.us.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.bytes.us.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/call.rs:225:16 [INFO] [stderr] | [INFO] [stderr] 225 | if self.b.auth.hdr.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.auth.hdr.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/call.rs:313:19 [INFO] [stderr] | [INFO] [stderr] 313 | } else if self.b.bytes.us.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.bytes.us.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: an inclusive range would be more readable [INFO] [stderr] --> src/call.rs:322:26 [INFO] [stderr] | [INFO] [stderr] 322 | (&mut ar[uslen..uslen + 1]).copy_from_slice(b":"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `uslen..=uslen` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/call.rs:370:38 [INFO] [stderr] | [INFO] [stderr] 370 | Dir::SendingBody(pos) if self.b.body.len() > 0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.b.body.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/call.rs:476:24 [INFO] [stderr] | [INFO] [stderr] 476 | if self.buf_body.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf_body.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/call.rs:511:16 [INFO] [stderr] | [INFO] [stderr] 511 | if b.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b.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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/call.rs:516:13 [INFO] [stderr] | [INFO] [stderr] 516 | / match &io_ret { [INFO] [stderr] 517 | | &Err(ref ie) => { [INFO] [stderr] 518 | | if ie.kind() == IoErrorKind::Interrupted { [INFO] [stderr] 519 | | continue; [INFO] [stderr] ... | [INFO] [stderr] 560 | | } [INFO] [stderr] 561 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 516 | match io_ret { [INFO] [stderr] 517 | Err(ref ie) => { [INFO] [stderr] 518 | if ie.kind() == IoErrorKind::Interrupted { [INFO] [stderr] 519 | continue; [INFO] [stderr] 520 | } else if ie.kind() == IoErrorKind::NotConnected { [INFO] [stderr] 521 | return Ok(SendStateInt::Wait); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/call.rs:584:13 [INFO] [stderr] | [INFO] [stderr] 584 | / match &io_ret { [INFO] [stderr] 585 | | &Err(ref ie) => { [INFO] [stderr] 586 | | if ie.kind() == IoErrorKind::Interrupted { [INFO] [stderr] 587 | | continue; [INFO] [stderr] ... | [INFO] [stderr] 605 | | _ => {} [INFO] [stderr] 606 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 584 | match io_ret { [INFO] [stderr] 585 | Err(ref ie) => { [INFO] [stderr] 586 | if ie.kind() == IoErrorKind::Interrupted { [INFO] [stderr] 587 | continue; [INFO] [stderr] 588 | } else if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 589 | buf.truncate(orig_len); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/call.rs:700:5 [INFO] [stderr] | [INFO] [stderr] 700 | / fn read_hdr( [INFO] [stderr] 701 | | &mut self, [INFO] [stderr] 702 | | con: &mut Con, [INFO] [stderr] 703 | | buf: &mut Vec, [INFO] [stderr] ... | [INFO] [stderr] 817 | | } [INFO] [stderr] 818 | | } [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: length comparison to zero [INFO] [stderr] --> src/connection.rs:58:12 [INFO] [stderr] | [INFO] [stderr] 58 | if cb.bytes.host.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `cb.bytes.host.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 lifetime isn't used in the function definition [INFO] [stderr] --> src/connection.rs:206:22 [INFO] [stderr] | [INFO] [stderr] 206 | pub fn signalled<'a, C: TlsConnector, T>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [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/connection.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | / match &res { [INFO] [stderr] 293 | | &Err(ref ie) => { [INFO] [stderr] 294 | | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 295 | | self.set_signalled_rd(false); [INFO] [stderr] ... | [INFO] [stderr] 298 | | _ => {} [INFO] [stderr] 299 | | } [INFO] [stderr] | |_________^ [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] 292 | if let &Err(ref ie) = &res { [INFO] [stderr] 293 | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 294 | self.set_signalled_rd(false); [INFO] [stderr] 295 | } [INFO] [stderr] 296 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/connection.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | / match &res { [INFO] [stderr] 293 | | &Err(ref ie) => { [INFO] [stderr] 294 | | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 295 | | self.set_signalled_rd(false); [INFO] [stderr] ... | [INFO] [stderr] 298 | | _ => {} [INFO] [stderr] 299 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 292 | match res { [INFO] [stderr] 293 | Err(ref ie) => { [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/connection.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | / match &res { [INFO] [stderr] 317 | | &Err(ref ie) => { [INFO] [stderr] 318 | | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 319 | | self.set_signalled_wr(false); [INFO] [stderr] ... | [INFO] [stderr] 322 | | _ => {} [INFO] [stderr] 323 | | } [INFO] [stderr] | |_________^ [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] 316 | if let &Err(ref ie) = &res { [INFO] [stderr] 317 | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 318 | self.set_signalled_wr(false); [INFO] [stderr] 319 | } [INFO] [stderr] 320 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/connection.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | / match &res { [INFO] [stderr] 317 | | &Err(ref ie) => { [INFO] [stderr] 318 | | if ie.kind() == IoErrorKind::WouldBlock { [INFO] [stderr] 319 | | self.set_signalled_wr(false); [INFO] [stderr] ... | [INFO] [stderr] 322 | | _ => {} [INFO] [stderr] 323 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 316 | match res { [INFO] [stderr] 317 | Err(ref ie) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/connection.rs:480:16 [INFO] [stderr] | [INFO] [stderr] 480 | if calls.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `calls.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 variable `call_id` is used as a loop counter. Consider using `for (call_id, item) in calls.iter_mut().enumerate()` or similar iterators [INFO] [stderr] --> src/connection.rs:486:25 [INFO] [stderr] | [INFO] [stderr] 486 | for call in calls.iter_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/connection.rs:642:20 [INFO] [stderr] | [INFO] [stderr] 642 | if self.cons[con].1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.cons[con].1.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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/connection.rs:648:17 [INFO] [stderr] | [INFO] [stderr] 648 | / if self.keepalive.contains_key(&nh) { [INFO] [stderr] 649 | | let mut doclose = false; [INFO] [stderr] 650 | | { [INFO] [stderr] 651 | | if let Some(c) = self.keepalive.get(&nh) { [INFO] [stderr] ... | [INFO] [stderr] 661 | | self.keepalive.insert(nh, con as u16); [INFO] [stderr] 662 | | } [INFO] [stderr] | |_________________^ help: consider using: `self.keepalive.entry(nh)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_parser/header.rs:74:18 [INFO] [stderr] | [INFO] [stderr] 74 | flags |= Into::::into(self.response_code) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(Into::::into(self.response_code))` [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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/dns_parser/name.rs:48:24 [INFO] [stderr] | [INFO] [stderr] 48 | if let None = return_pos { [INFO] [stderr] | _________________- ^^^^ [INFO] [stderr] 49 | | return_pos = Some(pos); [INFO] [stderr] 50 | | } [INFO] [stderr] | |_________________- help: try this: `if return_pos.is_none()` [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: an inclusive range would be more readable [INFO] [stderr] --> src/dns_parser/name.rs:84:31 [INFO] [stderr] | [INFO] [stderr] 84 | labels: &data[..pos + 1], [INFO] [stderr] | ^^^^^^^^^ help: use: `..=pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `ips` [INFO] [stderr] --> src/dns_parser/parser.rs:576:18 [INFO] [stderr] | [INFO] [stderr] 576 | for i in 0..6 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [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] 576 | for (i, ) in ips.iter().enumerate().take(6) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `items` [INFO] [stderr] --> src/dns_parser/parser.rs:685:18 [INFO] [stderr] | [INFO] [stderr] 685 | for i in 0..5 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [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] 685 | for (i, ) in items.iter().enumerate().take(5) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `items` [INFO] [stderr] --> src/dns_parser/parser.rs:751:18 [INFO] [stderr] | [INFO] [stderr] 751 | for i in 0..5 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [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] 751 | for (i, ) in items.iter().enumerate().take(5) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/httpc.rs:69:25 [INFO] [stderr] | [INFO] [stderr] 69 | let con_id = if b.bytes.host.len() > 0 && b.evid == usize::max_value() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b.bytes.host.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/httpc.rs:122:33 [INFO] [stderr] | [INFO] [stderr] 122 | if b1.capacity() > 0 || b1.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b1.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/httpc.rs:125:33 [INFO] [stderr] | [INFO] [stderr] 125 | if b2.capacity() > 0 || b2.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b2.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/httpc.rs:311:20 [INFO] [stderr] | [INFO] [stderr] 311 | if b.auth.hdr.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!b.auth.hdr.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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/httpc.rs:368:28 [INFO] [stderr] | [INFO] [stderr] 368 | if let Ok(_) = b.url(h.value) { [INFO] [stderr] | _____________________- ^^^^^ [INFO] [stderr] 369 | | return true; [INFO] [stderr] 370 | | } [INFO] [stderr] | |_____________________- help: try this: `if b.url(h.value).is_ok()` [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/httpc.rs:371:27 [INFO] [stderr] | [INFO] [stderr] 371 | } else if h.value.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!h.value.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: single-character string constant used as pattern [INFO] [stderr] --> src/httpc.rs:377:56 [INFO] [stderr] | [INFO] [stderr] 377 | let mut path_split = h.value.split("?"); [INFO] [stderr] | ^^^ help: try using a char instead: `'?'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/httpc.rs:382:28 [INFO] [stderr] | [INFO] [stderr] 382 | if query.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!query.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/resolve/mod.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 46 | if srvs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `srvs.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/resolve/mod.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | if srvs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `srvs.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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/resolve/mod.rs:101:20 [INFO] [stderr] | [INFO] [stderr] 101 | if let Ok(_) = Self::lookup_on(srvs, &sock, &mut pos, host) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 102 | | return Ok(sock); [INFO] [stderr] 103 | | } [INFO] [stderr] | |_____________- help: try this: `if Self::lookup_on(srvs, &sock, &mut pos, host).is_ok()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/resolve/mod.rs:138:20 [INFO] [stderr] | [INFO] [stderr] 138 | if let Ok(_) = res { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 139 | | return Ok(()); [INFO] [stderr] 140 | | } else if let Err(e) = res { [INFO] [stderr] 141 | | last_err = e; [INFO] [stderr] 142 | | } [INFO] [stderr] | |_____________- help: try this: `if res.is_ok()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:96:44 [INFO] [stderr] | [INFO] [stderr] 96 | Rule::auth_type => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 97 | | let s = inner_pair.into_span().as_str(); [INFO] [stderr] 98 | | if !s.eq_ignore_ascii_case("digest") { [INFO] [stderr] 99 | | return Err(::Error::AuthenticateParse); [INFO] [stderr] 100 | | } [INFO] [stderr] 101 | | break; [INFO] [stderr] 102 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:103:40 [INFO] [stderr] | [INFO] [stderr] 103 | Rule::realm => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 104 | | realm = inner_pair.into_span().as_str(); [INFO] [stderr] 105 | | break; [INFO] [stderr] 106 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:117:40 [INFO] [stderr] | [INFO] [stderr] 117 | Rule::nonce => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 118 | | nonce = inner_pair.into_span().as_str(); [INFO] [stderr] 119 | | break; [INFO] [stderr] 120 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:121:41 [INFO] [stderr] | [INFO] [stderr] 121 | Rule::opaque => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 122 | | opaque = inner_pair.into_span().as_str(); [INFO] [stderr] 123 | | break; [INFO] [stderr] 124 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:125:40 [INFO] [stderr] | [INFO] [stderr] 125 | Rule::stale => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 126 | | let s = inner_pair.into_span().as_str(); [INFO] [stderr] 127 | | if s.eq_ignore_ascii_case("true") { [INFO] [stderr] 128 | | stale = true; [INFO] [stderr] ... | [INFO] [stderr] 132 | | break; [INFO] [stderr] 133 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/types.rs:134:44 [INFO] [stderr] | [INFO] [stderr] 134 | Rule::algorithm => for inner_pair in inner_pair.into_inner() { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 135 | | let a = inner_pair.into_span().as_str(); [INFO] [stderr] 136 | | if a.eq_ignore_ascii_case("md5") { [INFO] [stderr] 137 | | alg = DigestAlg::MD5; [INFO] [stderr] ... | [INFO] [stderr] 141 | | break; [INFO] [stderr] 142 | | }, [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/types.rs:232:44 [INFO] [stderr] | [INFO] [stderr] 232 | let src_p: *const u8 = src.as_ptr().offset(off as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `src.as_ptr().add(off)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/types.rs:233:42 [INFO] [stderr] | [INFO] [stderr] 233 | let dst_p: *mut u8 = src.as_mut_ptr().offset(hdr as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `src.as_mut_ptr().add(hdr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/types.rs:312:12 [INFO] [stderr] | [INFO] [stderr] 312 | if self.query.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.query.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/types.rs:475:12 [INFO] [stderr] | [INFO] [stderr] 475 | if self.bytes.query.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.bytes.query.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/types.rs:533:12 [INFO] [stderr] | [INFO] [stderr] 533 | if inpath.len() > 0 && inpath.as_bytes()[0] != b'/' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!inpath.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/types.rs:583:12 [INFO] [stderr] | [INFO] [stderr] 583 | if self.auth.hdr.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.auth.hdr.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/types.rs:619:12 [INFO] [stderr] | [INFO] [stderr] 619 | if self.bytes.us.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.bytes.us.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/types.rs:626:12 [INFO] [stderr] | [INFO] [stderr] 626 | if self.bytes.pw.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.bytes.pw.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/types.rs:643:12 [INFO] [stderr] | [INFO] [stderr] 643 | if self.bytes.path.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.bytes.path.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] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `mio_httpc`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f8e8073e7faaf0c97910305566472e4379a5cf6f8e7086f88d9cbfa854849cc1"` [INFO] running `"docker" "rm" "-f" "f8e8073e7faaf0c97910305566472e4379a5cf6f8e7086f88d9cbfa854849cc1"` [INFO] [stdout] f8e8073e7faaf0c97910305566472e4379a5cf6f8e7086f88d9cbfa854849cc1