[INFO] crate mbpr 0.0.1 is already in cache [INFO] extracting crate mbpr 0.0.1 into work/ex/clippy-test-run/sources/stable/reg/mbpr/0.0.1 [INFO] extracting crate mbpr 0.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mbpr/0.0.1 [INFO] validating manifest of mbpr-0.0.1 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of mbpr-0.0.1 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing mbpr-0.0.1 [INFO] finished frobbing mbpr-0.0.1 [INFO] frobbed toml for mbpr-0.0.1 written to work/ex/clippy-test-run/sources/stable/reg/mbpr/0.0.1/Cargo.toml [INFO] started frobbing mbpr-0.0.1 [INFO] finished frobbing mbpr-0.0.1 [INFO] frobbed toml for mbpr-0.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mbpr/0.0.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting mbpr-0.0.1 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mbpr/0.0.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-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] c34ab98a7b8f8a25ebea31d19f7aea03822edfaa0cb835979c584e513e42efe8 [INFO] running `"docker" "start" "-a" "c34ab98a7b8f8a25ebea31d19f7aea03822edfaa0cb835979c584e513e42efe8"` [INFO] [stderr] Checking mbpr v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/request.rs:194:7 [INFO] [stderr] | [INFO] [stderr] 194 | extra: extra, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `extra` [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/request.rs:195:7 [INFO] [stderr] | [INFO] [stderr] 195 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/request.rs:196:7 [INFO] [stderr] | [INFO] [stderr] 196 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/request.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/request.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | cas: cas [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cas` [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/request.rs:423:7 [INFO] [stderr] | [INFO] [stderr] 423 | extra: extra, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `extra` [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/request.rs:424:7 [INFO] [stderr] | [INFO] [stderr] 424 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/request.rs:425:7 [INFO] [stderr] | [INFO] [stderr] 425 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/request.rs:420:9 [INFO] [stderr] | [INFO] [stderr] 420 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/request.rs:421:9 [INFO] [stderr] | [INFO] [stderr] 421 | cas: cas [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cas` [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/response.rs:236:7 [INFO] [stderr] | [INFO] [stderr] 236 | extra: extra, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `extra` [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/response.rs:237:7 [INFO] [stderr] | [INFO] [stderr] 237 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/response.rs:238:7 [INFO] [stderr] | [INFO] [stderr] 238 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/response.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/response.rs:233:9 [INFO] [stderr] | [INFO] [stderr] 233 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/response.rs:234:9 [INFO] [stderr] | [INFO] [stderr] 234 | cas: cas [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cas` [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/response.rs:503:7 [INFO] [stderr] | [INFO] [stderr] 503 | extra: extra, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `extra` [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/response.rs:504:7 [INFO] [stderr] | [INFO] [stderr] 504 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/response.rs:505:7 [INFO] [stderr] | [INFO] [stderr] 505 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/response.rs:496:9 [INFO] [stderr] | [INFO] [stderr] 496 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/response.rs:500:9 [INFO] [stderr] | [INFO] [stderr] 500 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/response.rs:501:9 [INFO] [stderr] | [INFO] [stderr] 501 | cas: cas [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cas` [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/request.rs:194:7 [INFO] [stderr] | [INFO] [stderr] 194 | extra: extra, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `extra` [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/request.rs:195:7 [INFO] [stderr] | [INFO] [stderr] 195 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/request.rs:196:7 [INFO] [stderr] | [INFO] [stderr] 196 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/request.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/request.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | cas: cas [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cas` [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/request.rs:423:7 [INFO] [stderr] | [INFO] [stderr] 423 | extra: extra, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `extra` [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/request.rs:424:7 [INFO] [stderr] | [INFO] [stderr] 424 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/request.rs:425:7 [INFO] [stderr] | [INFO] [stderr] 425 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/request.rs:420:9 [INFO] [stderr] | [INFO] [stderr] 420 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/request.rs:421:9 [INFO] [stderr] | [INFO] [stderr] 421 | cas: cas [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cas` [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/response.rs:236:7 [INFO] [stderr] | [INFO] [stderr] 236 | extra: extra, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `extra` [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/response.rs:237:7 [INFO] [stderr] | [INFO] [stderr] 237 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/response.rs:238:7 [INFO] [stderr] | [INFO] [stderr] 238 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/response.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/response.rs:233:9 [INFO] [stderr] | [INFO] [stderr] 233 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/response.rs:234:9 [INFO] [stderr] | [INFO] [stderr] 234 | cas: cas [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cas` [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/response.rs:503:7 [INFO] [stderr] | [INFO] [stderr] 503 | extra: extra, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `extra` [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/response.rs:504:7 [INFO] [stderr] | [INFO] [stderr] 504 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/response.rs:505:7 [INFO] [stderr] | [INFO] [stderr] 505 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/response.rs:496:9 [INFO] [stderr] | [INFO] [stderr] 496 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/response.rs:500:9 [INFO] [stderr] | [INFO] [stderr] 500 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/response.rs:501:9 [INFO] [stderr] | [INFO] [stderr] 501 | cas: cas [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cas` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/opcode.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / pub fn opcode_parse<'a>(i: &'a [u8]) [INFO] [stderr] 114 | | -> IResult<&'a [u8], OpCode> [INFO] [stderr] 115 | | { [INFO] [stderr] 116 | | let byte = i[0].clone(); [INFO] [stderr] ... | [INFO] [stderr] 127 | | IResult::Error(ErrorKind::Custom(0x81)) [INFO] [stderr] 128 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/opcode.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | let byte = i[0].clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `i[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/status.rs:53:23 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn check_status(&self) -> Result<(), StatusField> { [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: long literal lacking separators [INFO] [stderr] --> src/lib.rs:349:4 [INFO] [stderr] | [INFO] [stderr] 349 | (0x44BBAAFFu32).encode(&mut e); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x44BB_AAFFu32` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/status.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | / pub fn status_parse<'a>(i: &'a [u8]) [INFO] [stderr] 97 | | -> IResult<&'a [u8], StatusField> { [INFO] [stderr] 98 | | match be_u16(i) { [INFO] [stderr] 99 | | IResult::Done(rem,val) => if valid_status(val) { [INFO] [stderr] ... | [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:359:4 [INFO] [stderr] | [INFO] [stderr] 359 | (0x1166884444BBAAFFu64).encode(&mut e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x1166_8844_44BB_AAFFu64` [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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/request.rs:111:20 [INFO] [stderr] | [INFO] [stderr] 111 | bodylen: bl - (kl as u32 + el as u32), [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(kl)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/request.rs:111:32 [INFO] [stderr] | [INFO] [stderr] 111 | bodylen: bl - (kl as u32 + el as u32), [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(el)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/request.rs:120:3 [INFO] [stderr] | [INFO] [stderr] 120 | / match x { [INFO] [stderr] 121 | | &Option::Some(ref b) => b.len(), [INFO] [stderr] 122 | | _ => 0 [INFO] [stderr] 123 | | } [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] 120 | match *x { [INFO] [stderr] 121 | Option::Some(ref b) => b.len(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | / fn to_opt<'b>(z: &'b [u8]) -> Option<&'b [u8]> { [INFO] [stderr] 147 | | if z.len() == 0 { [INFO] [stderr] 148 | | None [INFO] [stderr] 149 | | } else { [INFO] [stderr] 150 | | Some(z) [INFO] [stderr] 151 | | } [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:147:10 [INFO] [stderr] | [INFO] [stderr] 147 | if z.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `z.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: this function has too many arguments (8/7) [INFO] [stderr] --> src/request.rs:217:3 [INFO] [stderr] | [INFO] [stderr] 217 | / pub fn rebuild(&mut self,opcode: OpCode, vbucket: u16, opaque: u32,cas: u64,extra: Option<&'a [u8]>,key: Option<&'a [u8]>,body: Option<&'a [u8]>){ [INFO] [stderr] 218 | | use std::mem::replace; [INFO] [stderr] 219 | | [INFO] [stderr] 220 | | let e = get_len(&extra); [INFO] [stderr] ... | [INFO] [stderr] 233 | | let _ = replace(&mut self.body, body); [INFO] [stderr] 234 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/request.rs:315:19 [INFO] [stderr] | [INFO] [stderr] 315 | pub fn to_owned(self) -> OwnedRequest { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:389:19 [INFO] [stderr] | [INFO] [stderr] 389 | extra: if e.len() == 0 { Vec::with_capacity(0) } else {e.to_vec()}, [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `e.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/request.rs:390:17 [INFO] [stderr] | [INFO] [stderr] 390 | key: if k.len() == 0 { Vec::with_capacity(0) } else { k.to_vec() }, [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `k.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/request.rs:391:18 [INFO] [stderr] | [INFO] [stderr] 391 | body: if b.len() == 0 { Vec::with_capacity(0) } else { b.to_vec() } [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/request.rs:446:3 [INFO] [stderr] | [INFO] [stderr] 446 | / pub fn rebuild(&mut self, opcode: OpCode, vbucket: u16, opaque: u32, cas: u64, extra: Vec, key: Vec, body: Vec){ [INFO] [stderr] 447 | | use std::mem::replace; [INFO] [stderr] 448 | | [INFO] [stderr] 449 | | let e = extra.len(); [INFO] [stderr] ... | [INFO] [stderr] 462 | | let _ = replace(&mut self.body, body); [INFO] [stderr] 463 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:502:5 [INFO] [stderr] | [INFO] [stderr] 502 | self.extra.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.extra.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:505:3 [INFO] [stderr] | [INFO] [stderr] 505 | / pub fn get_extra<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 506 | | if self.has_extra() { [INFO] [stderr] 507 | | Some(self.extra.as_slice()) [INFO] [stderr] 508 | | } else { [INFO] [stderr] 509 | | None [INFO] [stderr] 510 | | } [INFO] [stderr] 511 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:514:5 [INFO] [stderr] | [INFO] [stderr] 514 | self.key.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.key.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:517:3 [INFO] [stderr] | [INFO] [stderr] 517 | / pub fn get_key<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 518 | | if self.has_key() { [INFO] [stderr] 519 | | Some(self.key.as_slice()) [INFO] [stderr] 520 | | } else { [INFO] [stderr] 521 | | None [INFO] [stderr] 522 | | } [INFO] [stderr] 523 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:533:3 [INFO] [stderr] | [INFO] [stderr] 533 | / pub fn get_key_str<'a>(&'a self) -> Option<&'a str> { [INFO] [stderr] 534 | | use std::str::from_utf8_unchecked; [INFO] [stderr] 535 | | unsafe{ self.get_key().map(|x| from_utf8_unchecked(x)) } [INFO] [stderr] 536 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:539:5 [INFO] [stderr] | [INFO] [stderr] 539 | self.body.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:542:3 [INFO] [stderr] | [INFO] [stderr] 542 | / pub fn get_body<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 543 | | if self.has_body() { [INFO] [stderr] 544 | | Some(self.body.as_slice()) [INFO] [stderr] 545 | | } else { [INFO] [stderr] 546 | | None [INFO] [stderr] 547 | | } [INFO] [stderr] 548 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/response.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | self.code.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.code` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/response.rs:132:21 [INFO] [stderr] | [INFO] [stderr] 132 | bodylen: (bl - (kl as u32 + el as u32)), [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(kl)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/response.rs:132:33 [INFO] [stderr] | [INFO] [stderr] 132 | bodylen: (bl - (kl as u32 + el as u32)), [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(el)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/response.rs:146:3 [INFO] [stderr] | [INFO] [stderr] 146 | / match x { [INFO] [stderr] 147 | | &Option::None => 0usize, [INFO] [stderr] 148 | | &Option::Some(ref b) => b.len(), [INFO] [stderr] 149 | | } [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] 146 | match *x { [INFO] [stderr] 147 | Option::None => 0usize, [INFO] [stderr] 148 | Option::Some(ref b) => b.len(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:168:5 [INFO] [stderr] | [INFO] [stderr] 168 | / fn to_opt<'b>(z: &'b [u8]) -> Option<&'b [u8]> { [INFO] [stderr] 169 | | if z.len() == 0 { [INFO] [stderr] 170 | | None [INFO] [stderr] 171 | | } else { [INFO] [stderr] 172 | | Some(z) [INFO] [stderr] 173 | | } [INFO] [stderr] 174 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:169:10 [INFO] [stderr] | [INFO] [stderr] 169 | if z.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `z.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 function has too many arguments (8/7) [INFO] [stderr] --> src/response.rs:259:3 [INFO] [stderr] | [INFO] [stderr] 259 | / pub fn rebuild(&mut self,opcode: OpCode,status: StatusField,opaque: u32,cas: u64,extra: Option<&'a [u8]>,key: Option<&'a [u8]>,body: Option<&'a [u8]>){ [INFO] [stderr] 260 | | use std::mem::replace; [INFO] [stderr] 261 | | [INFO] [stderr] 262 | | let e = get_len(&extra); [INFO] [stderr] ... | [INFO] [stderr] 275 | | let _ = replace(&mut self.body, body); [INFO] [stderr] 276 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/response.rs:344:19 [INFO] [stderr] | [INFO] [stderr] 344 | pub fn to_owned(self) -> OwnedResponse { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:446:10 [INFO] [stderr] | [INFO] [stderr] 446 | if x.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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 function has too many arguments (8/7) [INFO] [stderr] --> src/response.rs:526:3 [INFO] [stderr] | [INFO] [stderr] 526 | / pub fn rebuild(&mut self, opcode: OpCode, status: StatusField, opaque: u32, cas: u64, extra: Vec, key: Vec, body: Vec){ [INFO] [stderr] 527 | | use std::mem::replace; [INFO] [stderr] 528 | | [INFO] [stderr] 529 | | let e = extra.len(); [INFO] [stderr] ... | [INFO] [stderr] 542 | | let _ = replace(&mut self.body, body); [INFO] [stderr] 543 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:567:5 [INFO] [stderr] | [INFO] [stderr] 567 | self.extra.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.extra.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:570:3 [INFO] [stderr] | [INFO] [stderr] 570 | / pub fn get_extra<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 571 | | if self.has_extra() { [INFO] [stderr] 572 | | Some(self.extra.as_slice()) [INFO] [stderr] 573 | | } else { [INFO] [stderr] 574 | | None [INFO] [stderr] 575 | | } [INFO] [stderr] 576 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:579:5 [INFO] [stderr] | [INFO] [stderr] 579 | self.key.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.key.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:582:3 [INFO] [stderr] | [INFO] [stderr] 582 | / pub fn get_key<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 583 | | if self.has_key() { [INFO] [stderr] 584 | | Some(self.key.as_slice()) [INFO] [stderr] 585 | | } else { [INFO] [stderr] 586 | | None [INFO] [stderr] 587 | | } [INFO] [stderr] 588 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:598:3 [INFO] [stderr] | [INFO] [stderr] 598 | / pub fn get_key_str<'a>(&'a self) -> Option<&'a str> { [INFO] [stderr] 599 | | use std::str::from_utf8_unchecked; [INFO] [stderr] 600 | | unsafe{ self.get_key().map(|x| from_utf8_unchecked(x)) } [INFO] [stderr] 601 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:604:5 [INFO] [stderr] | [INFO] [stderr] 604 | self.body.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:607:3 [INFO] [stderr] | [INFO] [stderr] 607 | / pub fn get_body<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 608 | | if self.has_body() { [INFO] [stderr] 609 | | Some(self.body.as_slice()) [INFO] [stderr] 610 | | } else { [INFO] [stderr] 611 | | None [INFO] [stderr] 612 | | } [INFO] [stderr] 613 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / match self { [INFO] [stderr] 87 | | &ParseResult::Ok(_) => true, [INFO] [stderr] 88 | | _ => false [INFO] [stderr] 89 | | } [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] 86 | match *self { [INFO] [stderr] 87 | ParseResult::Ok(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `Encoder` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/lib.rs:139:1 [INFO] [stderr] | [INFO] [stderr] 139 | / impl Encoder { [INFO] [stderr] 140 | | /// Pass an already constructed packet in. This will allocate a buffer [INFO] [stderr] 141 | | /// the size of that packet [INFO] [stderr] 142 | | #[inline(always)] [INFO] [stderr] ... | [INFO] [stderr] 242 | | } [INFO] [stderr] 243 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] error: unsafe vector initialization [INFO] [stderr] --> src/lib.rs:188:5 [INFO] [stderr] | [INFO] [stderr] 187 | let mut v = Vec::::with_capacity(size); [INFO] [stderr] | ------------------------------ help: consider replace allocation with: `vec![0; size]` [INFO] [stderr] 188 | v.set_len(size); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unsafe_vector_initialization)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unsafe_vector_initialization [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:199:3 [INFO] [stderr] | [INFO] [stderr] 199 | / pub fn as_slice<'a>(&'a self) -> &'a [u8] { [INFO] [stderr] 200 | | use std::slice; [INFO] [stderr] 201 | | [INFO] [stderr] 202 | | unsafe{ [INFO] [stderr] 203 | | slice::from_raw_parts(self.data.as_ptr() as *mut u8, self.len()) [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:266:5 [INFO] [stderr] | [INFO] [stderr] 266 | / match self { [INFO] [stderr] 267 | | &Option::None => { }, [INFO] [stderr] 268 | | &Option::Some(ref x) => { [INFO] [stderr] 269 | | buffer.encode_slice(x); [INFO] [stderr] 270 | | } [INFO] [stderr] 271 | | }; [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] 266 | match *self { [INFO] [stderr] 267 | Option::None => { }, [INFO] [stderr] 268 | Option::Some(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `mbpr`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/opcode.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / pub fn opcode_parse<'a>(i: &'a [u8]) [INFO] [stderr] 114 | | -> IResult<&'a [u8], OpCode> [INFO] [stderr] 115 | | { [INFO] [stderr] 116 | | let byte = i[0].clone(); [INFO] [stderr] ... | [INFO] [stderr] 127 | | IResult::Error(ErrorKind::Custom(0x81)) [INFO] [stderr] 128 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/opcode.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | let byte = i[0].clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `i[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 301 [INFO] [stderr] --> src/opcode.rs:133:1 [INFO] [stderr] | [INFO] [stderr] 133 | / fn test_opcode_decode() { [INFO] [stderr] 134 | | [INFO] [stderr] 135 | | use super::{Fault,ParseResult}; [INFO] [stderr] 136 | | /* [INFO] [stderr] ... | [INFO] [stderr] 271 | | bad_code!(0xFFu8); [INFO] [stderr] 272 | | } [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/status.rs:53:23 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn check_status(&self) -> Result<(), StatusField> { [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/status.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | / pub fn status_parse<'a>(i: &'a [u8]) [INFO] [stderr] 97 | | -> IResult<&'a [u8], StatusField> { [INFO] [stderr] 98 | | match be_u16(i) { [INFO] [stderr] 99 | | IResult::Done(rem,val) => if valid_status(val) { [INFO] [stderr] ... | [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 137 [INFO] [stderr] --> src/status.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / fn test_status_field() { [INFO] [stderr] 114 | | [INFO] [stderr] 115 | | use super::{Fault,ParseResult}; [INFO] [stderr] 116 | | [INFO] [stderr] ... | [INFO] [stderr] 183 | | bt!(0xFFFFu16); [INFO] [stderr] 184 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/request.rs:111:20 [INFO] [stderr] | [INFO] [stderr] 111 | bodylen: bl - (kl as u32 + el as u32), [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(kl)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/request.rs:111:32 [INFO] [stderr] | [INFO] [stderr] 111 | bodylen: bl - (kl as u32 + el as u32), [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(el)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/request.rs:120:3 [INFO] [stderr] | [INFO] [stderr] 120 | / match x { [INFO] [stderr] 121 | | &Option::Some(ref b) => b.len(), [INFO] [stderr] 122 | | _ => 0 [INFO] [stderr] 123 | | } [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] 120 | match *x { [INFO] [stderr] 121 | Option::Some(ref b) => b.len(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | / fn to_opt<'b>(z: &'b [u8]) -> Option<&'b [u8]> { [INFO] [stderr] 147 | | if z.len() == 0 { [INFO] [stderr] 148 | | None [INFO] [stderr] 149 | | } else { [INFO] [stderr] 150 | | Some(z) [INFO] [stderr] 151 | | } [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:147:10 [INFO] [stderr] | [INFO] [stderr] 147 | if z.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `z.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: this function has too many arguments (8/7) [INFO] [stderr] --> src/request.rs:217:3 [INFO] [stderr] | [INFO] [stderr] 217 | / pub fn rebuild(&mut self,opcode: OpCode, vbucket: u16, opaque: u32,cas: u64,extra: Option<&'a [u8]>,key: Option<&'a [u8]>,body: Option<&'a [u8]>){ [INFO] [stderr] 218 | | use std::mem::replace; [INFO] [stderr] 219 | | [INFO] [stderr] 220 | | let e = get_len(&extra); [INFO] [stderr] ... | [INFO] [stderr] 233 | | let _ = replace(&mut self.body, body); [INFO] [stderr] 234 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/request.rs:315:19 [INFO] [stderr] | [INFO] [stderr] 315 | pub fn to_owned(self) -> OwnedRequest { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:389:19 [INFO] [stderr] | [INFO] [stderr] 389 | extra: if e.len() == 0 { Vec::with_capacity(0) } else {e.to_vec()}, [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `e.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/request.rs:390:17 [INFO] [stderr] | [INFO] [stderr] 390 | key: if k.len() == 0 { Vec::with_capacity(0) } else { k.to_vec() }, [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `k.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/request.rs:391:18 [INFO] [stderr] | [INFO] [stderr] 391 | body: if b.len() == 0 { Vec::with_capacity(0) } else { b.to_vec() } [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/request.rs:446:3 [INFO] [stderr] | [INFO] [stderr] 446 | / pub fn rebuild(&mut self, opcode: OpCode, vbucket: u16, opaque: u32, cas: u64, extra: Vec, key: Vec, body: Vec){ [INFO] [stderr] 447 | | use std::mem::replace; [INFO] [stderr] 448 | | [INFO] [stderr] 449 | | let e = extra.len(); [INFO] [stderr] ... | [INFO] [stderr] 462 | | let _ = replace(&mut self.body, body); [INFO] [stderr] 463 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:502:5 [INFO] [stderr] | [INFO] [stderr] 502 | self.extra.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.extra.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:505:3 [INFO] [stderr] | [INFO] [stderr] 505 | / pub fn get_extra<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 506 | | if self.has_extra() { [INFO] [stderr] 507 | | Some(self.extra.as_slice()) [INFO] [stderr] 508 | | } else { [INFO] [stderr] 509 | | None [INFO] [stderr] 510 | | } [INFO] [stderr] 511 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:514:5 [INFO] [stderr] | [INFO] [stderr] 514 | self.key.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.key.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:517:3 [INFO] [stderr] | [INFO] [stderr] 517 | / pub fn get_key<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 518 | | if self.has_key() { [INFO] [stderr] 519 | | Some(self.key.as_slice()) [INFO] [stderr] 520 | | } else { [INFO] [stderr] 521 | | None [INFO] [stderr] 522 | | } [INFO] [stderr] 523 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:533:3 [INFO] [stderr] | [INFO] [stderr] 533 | / pub fn get_key_str<'a>(&'a self) -> Option<&'a str> { [INFO] [stderr] 534 | | use std::str::from_utf8_unchecked; [INFO] [stderr] 535 | | unsafe{ self.get_key().map(|x| from_utf8_unchecked(x)) } [INFO] [stderr] 536 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/request.rs:539:5 [INFO] [stderr] | [INFO] [stderr] 539 | self.body.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/request.rs:542:3 [INFO] [stderr] | [INFO] [stderr] 542 | / pub fn get_body<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 543 | | if self.has_body() { [INFO] [stderr] 544 | | Some(self.body.as_slice()) [INFO] [stderr] 545 | | } else { [INFO] [stderr] 546 | | None [INFO] [stderr] 547 | | } [INFO] [stderr] 548 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/response.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | self.code.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.code` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/response.rs:132:21 [INFO] [stderr] | [INFO] [stderr] 132 | bodylen: (bl - (kl as u32 + el as u32)), [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(kl)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/response.rs:132:33 [INFO] [stderr] | [INFO] [stderr] 132 | bodylen: (bl - (kl as u32 + el as u32)), [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(el)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/response.rs:146:3 [INFO] [stderr] | [INFO] [stderr] 146 | / match x { [INFO] [stderr] 147 | | &Option::None => 0usize, [INFO] [stderr] 148 | | &Option::Some(ref b) => b.len(), [INFO] [stderr] 149 | | } [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] 146 | match *x { [INFO] [stderr] 147 | Option::None => 0usize, [INFO] [stderr] 148 | Option::Some(ref b) => b.len(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:168:5 [INFO] [stderr] | [INFO] [stderr] 168 | / fn to_opt<'b>(z: &'b [u8]) -> Option<&'b [u8]> { [INFO] [stderr] 169 | | if z.len() == 0 { [INFO] [stderr] 170 | | None [INFO] [stderr] 171 | | } else { [INFO] [stderr] 172 | | Some(z) [INFO] [stderr] 173 | | } [INFO] [stderr] 174 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:169:10 [INFO] [stderr] | [INFO] [stderr] 169 | if z.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `z.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 function has too many arguments (8/7) [INFO] [stderr] --> src/response.rs:259:3 [INFO] [stderr] | [INFO] [stderr] 259 | / pub fn rebuild(&mut self,opcode: OpCode,status: StatusField,opaque: u32,cas: u64,extra: Option<&'a [u8]>,key: Option<&'a [u8]>,body: Option<&'a [u8]>){ [INFO] [stderr] 260 | | use std::mem::replace; [INFO] [stderr] 261 | | [INFO] [stderr] 262 | | let e = get_len(&extra); [INFO] [stderr] ... | [INFO] [stderr] 275 | | let _ = replace(&mut self.body, body); [INFO] [stderr] 276 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/response.rs:344:19 [INFO] [stderr] | [INFO] [stderr] 344 | pub fn to_owned(self) -> OwnedResponse { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:446:10 [INFO] [stderr] | [INFO] [stderr] 446 | if x.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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 function has too many arguments (8/7) [INFO] [stderr] --> src/response.rs:526:3 [INFO] [stderr] | [INFO] [stderr] 526 | / pub fn rebuild(&mut self, opcode: OpCode, status: StatusField, opaque: u32, cas: u64, extra: Vec, key: Vec, body: Vec){ [INFO] [stderr] 527 | | use std::mem::replace; [INFO] [stderr] 528 | | [INFO] [stderr] 529 | | let e = extra.len(); [INFO] [stderr] ... | [INFO] [stderr] 542 | | let _ = replace(&mut self.body, body); [INFO] [stderr] 543 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:567:5 [INFO] [stderr] | [INFO] [stderr] 567 | self.extra.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.extra.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:570:3 [INFO] [stderr] | [INFO] [stderr] 570 | / pub fn get_extra<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 571 | | if self.has_extra() { [INFO] [stderr] 572 | | Some(self.extra.as_slice()) [INFO] [stderr] 573 | | } else { [INFO] [stderr] 574 | | None [INFO] [stderr] 575 | | } [INFO] [stderr] 576 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:579:5 [INFO] [stderr] | [INFO] [stderr] 579 | self.key.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.key.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:582:3 [INFO] [stderr] | [INFO] [stderr] 582 | / pub fn get_key<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 583 | | if self.has_key() { [INFO] [stderr] 584 | | Some(self.key.as_slice()) [INFO] [stderr] 585 | | } else { [INFO] [stderr] 586 | | None [INFO] [stderr] 587 | | } [INFO] [stderr] 588 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:598:3 [INFO] [stderr] | [INFO] [stderr] 598 | / pub fn get_key_str<'a>(&'a self) -> Option<&'a str> { [INFO] [stderr] 599 | | use std::str::from_utf8_unchecked; [INFO] [stderr] 600 | | unsafe{ self.get_key().map(|x| from_utf8_unchecked(x)) } [INFO] [stderr] 601 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/response.rs:604:5 [INFO] [stderr] | [INFO] [stderr] 604 | self.body.len() != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/response.rs:607:3 [INFO] [stderr] | [INFO] [stderr] 607 | / pub fn get_body<'a>(&'a self) -> Option<&'a [u8]> { [INFO] [stderr] 608 | | if self.has_body() { [INFO] [stderr] 609 | | Some(self.body.as_slice()) [INFO] [stderr] 610 | | } else { [INFO] [stderr] 611 | | None [INFO] [stderr] 612 | | } [INFO] [stderr] 613 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / match self { [INFO] [stderr] 87 | | &ParseResult::Ok(_) => true, [INFO] [stderr] 88 | | _ => false [INFO] [stderr] 89 | | } [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] 86 | match *self { [INFO] [stderr] 87 | ParseResult::Ok(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `Encoder` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/lib.rs:139:1 [INFO] [stderr] | [INFO] [stderr] 139 | / impl Encoder { [INFO] [stderr] 140 | | /// Pass an already constructed packet in. This will allocate a buffer [INFO] [stderr] 141 | | /// the size of that packet [INFO] [stderr] 142 | | #[inline(always)] [INFO] [stderr] ... | [INFO] [stderr] 242 | | } [INFO] [stderr] 243 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] error: unsafe vector initialization [INFO] [stderr] --> src/lib.rs:188:5 [INFO] [stderr] | [INFO] [stderr] 187 | let mut v = Vec::::with_capacity(size); [INFO] [stderr] | ------------------------------ help: consider replace allocation with: `vec![0; size]` [INFO] [stderr] 188 | v.set_len(size); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unsafe_vector_initialization)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unsafe_vector_initialization [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:199:3 [INFO] [stderr] | [INFO] [stderr] 199 | / pub fn as_slice<'a>(&'a self) -> &'a [u8] { [INFO] [stderr] 200 | | use std::slice; [INFO] [stderr] 201 | | [INFO] [stderr] 202 | | unsafe{ [INFO] [stderr] 203 | | slice::from_raw_parts(self.data.as_ptr() as *mut u8, self.len()) [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:266:5 [INFO] [stderr] | [INFO] [stderr] 266 | / match self { [INFO] [stderr] 267 | | &Option::None => { }, [INFO] [stderr] 268 | | &Option::Some(ref x) => { [INFO] [stderr] 269 | | buffer.encode_slice(x); [INFO] [stderr] 270 | | } [INFO] [stderr] 271 | | }; [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] 266 | match *self { [INFO] [stderr] 267 | Option::None => { }, [INFO] [stderr] 268 | Option::Some(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `mbpr`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "c34ab98a7b8f8a25ebea31d19f7aea03822edfaa0cb835979c584e513e42efe8"` [INFO] running `"docker" "rm" "-f" "c34ab98a7b8f8a25ebea31d19f7aea03822edfaa0cb835979c584e513e42efe8"` [INFO] [stdout] c34ab98a7b8f8a25ebea31d19f7aea03822edfaa0cb835979c584e513e42efe8