[INFO] crate protobuf_iter 0.1.1 is already in cache [INFO] extracting crate protobuf_iter 0.1.1 into work/ex/clippy-test-run/sources/stable/reg/protobuf_iter/0.1.1 [INFO] extracting crate protobuf_iter 0.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/protobuf_iter/0.1.1 [INFO] validating manifest of protobuf_iter-0.1.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 protobuf_iter-0.1.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 protobuf_iter-0.1.1 [INFO] finished frobbing protobuf_iter-0.1.1 [INFO] frobbed toml for protobuf_iter-0.1.1 written to work/ex/clippy-test-run/sources/stable/reg/protobuf_iter/0.1.1/Cargo.toml [INFO] started frobbing protobuf_iter-0.1.1 [INFO] finished frobbing protobuf_iter-0.1.1 [INFO] frobbed toml for protobuf_iter-0.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/protobuf_iter/0.1.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 protobuf_iter-0.1.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/protobuf_iter/0.1.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 10b1f9872b780c9d26744ff65d26bd3b9d8465d936705ea86f6c07b3fabe6f98 [INFO] running `"docker" "start" "-a" "10b1f9872b780c9d26744ff65d26bd3b9d8465d936705ea86f6c07b3fabe6f98"` [INFO] [stderr] Checking protobuf_iter v0.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:226:17 [INFO] [stderr] | [INFO] [stderr] 226 | value: value [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/message_iter.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | 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/message_iter.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | tag: tag, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/packed.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | 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/parse.rs:226:17 [INFO] [stderr] | [INFO] [stderr] 226 | value: value [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/message_iter.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | 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/message_iter.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | tag: tag, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/packed.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | 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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parse.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match self { [INFO] [stderr] 24 | | &ParseValue::LengthDelimited(ref data) => data, [INFO] [stderr] 25 | | _ => panic!("Expected length-delimited data") [INFO] [stderr] 26 | | } [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] 23 | match *self { [INFO] [stderr] 24 | ParseValue::LengthDelimited(ref data) => data, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:159:11 [INFO] [stderr] | [INFO] [stderr] 159 | while data.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/parse.rs:161:18 [INFO] [stderr] | [INFO] [stderr] 161 | value |= ((byte & 0x7f) as u64) << shift; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(byte & 0x7f)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parse.rs:195:20 [INFO] [stderr] | [INFO] [stderr] 195 | const MSG_ACTIONS: [&Fn(&[u8]) -> Result<(ParseValue, &[u8]), ParseError>; 8] = [ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/message_iter.rs:33:34 [INFO] [stderr] | [INFO] [stderr] 33 | MessageIter::new(data.as_ref()), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `data` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/packed.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 77 | if self.data.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/value32.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | LittleEndian::read_u32(&value32.data) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(LittleEndian::read_u32(&value32.data))` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/value32.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | LittleEndian::read_i32(&value32.data) as i64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(LittleEndian::read_i32(&value32.data))` [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: long literal lacking separators [INFO] [stderr] --> src/parse.rs:259:21 [INFO] [stderr] | [INFO] [stderr] 259 | let data = [0b10101100, 0b00000010]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1010_1100` [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/parse.rs:259:33 [INFO] [stderr] | [INFO] [stderr] 259 | let data = [0b10101100, 0b00000010]; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parse.rs:294:28 [INFO] [stderr] | [INFO] [stderr] 294 | const PACKED_VARINTS: &'static [u8] = &[0x22, 0x06, 0x03, 0x8E, 0x02, 0x9E, 0xA7, 0x05]; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/packed.rs:99:29 [INFO] [stderr] | [INFO] [stderr] 99 | const VARINTS_ENCODED: &'static [u8] = &[0x03, 0x8E, 0x02, 0x9E, 0xA7, 0x05]; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/packed.rs:107:30 [INFO] [stderr] | [INFO] [stderr] 107 | const VALUE32S_ENCODED: &'static [u8] = &[ [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/packed.rs:119:30 [INFO] [stderr] | [INFO] [stderr] 119 | const VALUE64S_ENCODED: &'static [u8] = &[ [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/zigzag.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | assert_eq!(2147483647i32, 4294967294u32.zigzag()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `2_147_483_647i32` [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/zigzag.rs:30:35 [INFO] [stderr] | [INFO] [stderr] 30 | assert_eq!(2147483647i32, 4294967294u32.zigzag()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `4_294_967_294u32` [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/zigzag.rs:31:22 [INFO] [stderr] | [INFO] [stderr] 31 | assert_eq!((-2147483648 as i32), 4294967295u32.zigzag()); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_648` [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/zigzag.rs:31:42 [INFO] [stderr] | [INFO] [stderr] 31 | assert_eq!((-2147483648 as i32), 4294967295u32.zigzag()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `4_294_967_295u32` [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/zigzag.rs:40:20 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!(2147483647i32.zigzag(), 4294967294u32); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `2_147_483_647i32` [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/zigzag.rs:40:44 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!(2147483647i32.zigzag(), 4294967294u32); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `4_294_967_294u32` [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/zigzag.rs:41:22 [INFO] [stderr] | [INFO] [stderr] 41 | assert_eq!((-2147483648 as i32).zigzag(), 4294967295u32); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_648` [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/zigzag.rs:41:51 [INFO] [stderr] | [INFO] [stderr] 41 | assert_eq!((-2147483648 as i32).zigzag(), 4294967295u32); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `4_294_967_295u32` [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/zigzag.rs:69:20 [INFO] [stderr] | [INFO] [stderr] 69 | assert_eq!(2147483647i64, 4294967294u64.zigzag()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `2_147_483_647i64` [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/zigzag.rs:69:35 [INFO] [stderr] | [INFO] [stderr] 69 | assert_eq!(2147483647i64, 4294967294u64.zigzag()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `4_294_967_294u64` [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/zigzag.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | assert_eq!((-2147483648 as i64), 4294967295u64.zigzag()); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_648` [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/zigzag.rs:70:42 [INFO] [stderr] | [INFO] [stderr] 70 | assert_eq!((-2147483648 as i64), 4294967295u64.zigzag()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `4_294_967_295u64` [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/zigzag.rs:79:20 [INFO] [stderr] | [INFO] [stderr] 79 | assert_eq!(2147483647i64.zigzag(), 4294967294u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `2_147_483_647i64` [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/zigzag.rs:79:44 [INFO] [stderr] | [INFO] [stderr] 79 | assert_eq!(2147483647i64.zigzag(), 4294967294u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `4_294_967_294u64` [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/zigzag.rs:80:22 [INFO] [stderr] | [INFO] [stderr] 80 | assert_eq!((-2147483648 as i64).zigzag(), 4294967295u64); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_648` [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/zigzag.rs:80:51 [INFO] [stderr] | [INFO] [stderr] 80 | assert_eq!((-2147483648 as i64).zigzag(), 4294967295u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `4_294_967_295u64` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parse.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match self { [INFO] [stderr] 24 | | &ParseValue::LengthDelimited(ref data) => data, [INFO] [stderr] 25 | | _ => panic!("Expected length-delimited data") [INFO] [stderr] 26 | | } [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] 23 | match *self { [INFO] [stderr] 24 | ParseValue::LengthDelimited(ref data) => data, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:159:11 [INFO] [stderr] | [INFO] [stderr] 159 | while data.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/parse.rs:161:18 [INFO] [stderr] | [INFO] [stderr] 161 | value |= ((byte & 0x7f) as u64) << shift; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(byte & 0x7f)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parse.rs:195:20 [INFO] [stderr] | [INFO] [stderr] 195 | const MSG_ACTIONS: [&Fn(&[u8]) -> Result<(ParseValue, &[u8]), ParseError>; 8] = [ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:268:39 [INFO] [stderr] | [INFO] [stderr] 268 | assert_eq!(150u32, From::from(value32.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `value32` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:269:39 [INFO] [stderr] | [INFO] [stderr] 269 | assert_eq!(150i32, From::from(value32.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `value32` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:270:39 [INFO] [stderr] | [INFO] [stderr] 270 | assert_eq!(150u64, From::from(value32.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `value32` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:271:39 [INFO] [stderr] | [INFO] [stderr] 271 | assert_eq!(150i64, From::from(value32.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `value32` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:275:39 [INFO] [stderr] | [INFO] [stderr] 275 | assert_eq!(150u64, From::from(value64.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `value64` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:276:39 [INFO] [stderr] | [INFO] [stderr] 276 | assert_eq!(150i64, From::from(value64.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `value64` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:277:39 [INFO] [stderr] | [INFO] [stderr] 277 | assert_eq!(150u64, From::from(value64.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `value64` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:278:39 [INFO] [stderr] | [INFO] [stderr] 278 | assert_eq!(150i64, From::from(value64.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `value64` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:281:39 [INFO] [stderr] | [INFO] [stderr] 281 | assert_eq!(150u64, From::from(varint.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `varint` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:282:38 [INFO] [stderr] | [INFO] [stderr] 282 | assert_eq!(75i64, From::from(varint.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `varint` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:283:39 [INFO] [stderr] | [INFO] [stderr] 283 | assert_eq!(150u64, From::from(varint.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `varint` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/parse.rs:284:38 [INFO] [stderr] | [INFO] [stderr] 284 | assert_eq!(75i64, From::from(varint.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `varint` [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: this call to `as_ref` does nothing [INFO] [stderr] --> src/message_iter.rs:33:34 [INFO] [stderr] | [INFO] [stderr] 33 | MessageIter::new(data.as_ref()), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `data` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/packed.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 77 | if self.data.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/value32.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | LittleEndian::read_u32(&value32.data) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(LittleEndian::read_u32(&value32.data))` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/value32.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | LittleEndian::read_i32(&value32.data) as i64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(LittleEndian::read_i32(&value32.data))` [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: long literal lacking separators [INFO] [stderr] --> benches/varint_parse.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | for i in 0..131073u32 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `131_073u32` [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] --> benches/varint_parse.rs:36:25 [INFO] [stderr] | [INFO] [stderr] 36 | for i in 0..131073u32 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `131_073u32` [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] Finished dev [unoptimized + debuginfo] target(s) in 4.56s [INFO] running `"docker" "inspect" "10b1f9872b780c9d26744ff65d26bd3b9d8465d936705ea86f6c07b3fabe6f98"` [INFO] running `"docker" "rm" "-f" "10b1f9872b780c9d26744ff65d26bd3b9d8465d936705ea86f6c07b3fabe6f98"` [INFO] [stdout] 10b1f9872b780c9d26744ff65d26bd3b9d8465d936705ea86f6c07b3fabe6f98