[INFO] crate bson 0.13.0 is already in cache [INFO] extracting crate bson 0.13.0 into work/ex/clippy-test-run/sources/stable/reg/bson/0.13.0 [INFO] extracting crate bson 0.13.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bson/0.13.0 [INFO] validating manifest of bson-0.13.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of bson-0.13.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing bson-0.13.0 [INFO] finished frobbing bson-0.13.0 [INFO] frobbed toml for bson-0.13.0 written to work/ex/clippy-test-run/sources/stable/reg/bson/0.13.0/Cargo.toml [INFO] started frobbing bson-0.13.0 [INFO] finished frobbing bson-0.13.0 [INFO] frobbed toml for bson-0.13.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bson/0.13.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting bson-0.13.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/bson/0.13.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 1205f96ca83a49ea6e8361ef5b1d28be493bf79975fab367807c83a616c70547 [INFO] running `"docker" "start" "-a" "1205f96ca83a49ea6e8361ef5b1d28be493bf79975fab367807c83a616c70547"` [INFO] [stderr] Checking bson v0.13.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decoder/serde.rs:256:48 [INFO] [stderr] | [INFO] [stderr] 256 | len: len, }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/decoder/serde.rs:262:48 [INFO] [stderr] | [INFO] [stderr] 262 | len: len, }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/decoder/serde.rs:274:48 [INFO] [stderr] | [INFO] [stderr] 274 | len: len, }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/decoder/serde.rs:256:48 [INFO] [stderr] | [INFO] [stderr] 256 | len: len, }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/decoder/serde.rs:262:48 [INFO] [stderr] | [INFO] [stderr] 262 | len: len, }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/decoder/serde.rs:274:48 [INFO] [stderr] | [INFO] [stderr] 274 | len: len, }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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: long literal lacking separators [INFO] [stderr] --> src/bson.rs:106:32 [INFO] [stderr] | [INFO] [stderr] 106 | let inc = (i & 0xFFFFFFFF) as i32; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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/bson.rs:147:32 [INFO] [stderr] | [INFO] [stderr] 147 | let inc = (i & 0xFFFFFFFF) as i32; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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/bson.rs:308:31 [INFO] [stderr] | [INFO] [stderr] 308 | let inc = v & 0x0000FFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_FFFF` [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/bson.rs:324:84 [INFO] [stderr] | [INFO] [stderr] 324 | "$numberLong": (v.timestamp() * 1000) + ((v.nanosecond() / 1000000) as i64) [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/bson.rs:401:32 [INFO] [stderr] | [INFO] [stderr] 401 | let inc = (v & 0xFFFFFFFF) as i32; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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/bson.rs:423:91 [INFO] [stderr] | [INFO] [stderr] 423 | "$numberLong" => (v.timestamp() * 1000) + v.nanosecond() as i64 / 1000000, [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/bson.rs:463:86 [INFO] [stderr] | [INFO] [stderr] 463 | return Bson::UtcDatetime(Utc.timestamp(long / 1000, ((long % 1000) * 1000000) as u32)); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/oid.rs:28:24 [INFO] [stderr] | [INFO] [stderr] 28 | const MAX_U24: usize = 0xFFFFFF; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_FFFF` [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/bson.rs:106:32 [INFO] [stderr] | [INFO] [stderr] 106 | let inc = (i & 0xFFFFFFFF) as i32; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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/bson.rs:147:32 [INFO] [stderr] | [INFO] [stderr] 147 | let inc = (i & 0xFFFFFFFF) as i32; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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/bson.rs:308:31 [INFO] [stderr] | [INFO] [stderr] 308 | let inc = v & 0x0000FFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_FFFF` [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/bson.rs:324:84 [INFO] [stderr] | [INFO] [stderr] 324 | "$numberLong": (v.timestamp() * 1000) + ((v.nanosecond() / 1000000) as i64) [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/bson.rs:401:32 [INFO] [stderr] | [INFO] [stderr] 401 | let inc = (v & 0xFFFFFFFF) as i32; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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/bson.rs:423:91 [INFO] [stderr] | [INFO] [stderr] 423 | "$numberLong" => (v.timestamp() * 1000) + v.nanosecond() as i64 / 1000000, [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/bson.rs:463:86 [INFO] [stderr] | [INFO] [stderr] 463 | return Bson::UtcDatetime(Utc.timestamp(long / 1000, ((long % 1000) * 1000000) as u32)); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/oid.rs:28:24 [INFO] [stderr] | [INFO] [stderr] 28 | const MAX_U24: usize = 0xFFFFFF; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_FFFF` [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/oid.rs:290:17 [INFO] [stderr] | [INFO] [stderr] 290 | let start = 1122866; [INFO] [stderr] | ^^^^^^^ help: consider: `1_122_866` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bson.rs:161:29 [INFO] [stderr] | [INFO] [stderr] 161 | Bson::FloatingPoint(a as f64) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(a)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bson.rs:324:65 [INFO] [stderr] | [INFO] [stderr] 324 | "$numberLong": (v.timestamp() * 1000) + ((v.nanosecond() / 1000000) as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(v.nanosecond() / 1000000)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/bson.rs:412:29 [INFO] [stderr] | [INFO] [stderr] 412 | "type": tval as i64, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(tval)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bson.rs:423:67 [INFO] [stderr] | [INFO] [stderr] 423 | "$numberLong" => (v.timestamp() * 1000) + v.nanosecond() as i64 / 1000000, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(v.nanosecond())` [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/bson.rs:446:34 [INFO] [stderr] | [INFO] [stderr] 446 | let timestamp = ((t as i64) << 32) + (i as i64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(t)` [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/bson.rs:446:54 [INFO] [stderr] | [INFO] [stderr] 446 | let timestamp = ((t as i64) << 32) + (i as i64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(i)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/compat/u2f.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/compat/u2f.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/compat/u2f.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [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 i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:75:22 [INFO] [stderr] | [INFO] [stderr] 75 | Ok(Bson::I32(value as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:82:54 [INFO] [stderr] | [INFO] [stderr] 82 | Err(Error::invalid_type(Unexpected::Unsigned(value as u64), &"a signed integer")) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:89:22 [INFO] [stderr] | [INFO] [stderr] 89 | Ok(Bson::I32(value as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:96:54 [INFO] [stderr] | [INFO] [stderr] 96 | Err(Error::invalid_type(Unexpected::Unsigned(value as u64), &"a signed integer")) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:110:54 [INFO] [stderr] | [INFO] [stderr] 110 | Err(Error::invalid_type(Unexpected::Unsigned(value as u64), &"a signed integer")) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/decoder/serde.rs:179:41 [INFO] [stderr] | [INFO] [stderr] 179 | Ok(Bson::from_extended_document(values.into())) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `values` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/encoder/error.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | / match self { [INFO] [stderr] 53 | | &EncoderError::IoError(ref inner) => Some(inner), [INFO] [stderr] 54 | | _ => None, [INFO] [stderr] 55 | | } [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] 52 | match *self { [INFO] [stderr] 53 | EncoderError::IoError(ref inner) => Some(inner), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `encoder::serde::Encoder` [INFO] [stderr] --> src/encoder/serde.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> Encoder { [INFO] [stderr] 63 | | Encoder [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 58 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:86:28 [INFO] [stderr] | [INFO] [stderr] 86 | self.serialize_i32(value as i32) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:92:26 [INFO] [stderr] | [INFO] [stderr] 92 | Ok(Bson::I32(value as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:100:28 [INFO] [stderr] | [INFO] [stderr] 100 | self.serialize_i32(value as i32) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:106:26 [INFO] [stderr] | [INFO] [stderr] 106 | Ok(Bson::I32(value as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:120:26 [INFO] [stderr] | [INFO] [stderr] 120 | Ok(Bson::I64(value as i64)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:145:28 [INFO] [stderr] | [INFO] [stderr] 145 | self.serialize_f64(value as f64) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bson.rs:161:29 [INFO] [stderr] | [INFO] [stderr] 161 | Bson::FloatingPoint(a as f64) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(a)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:433:19 [INFO] [stderr] | [INFO] [stderr] 433 | let ts = ((self.t.to_le() as u64) << 32) | (self.i.to_le() as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.t.to_le())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:433:52 [INFO] [stderr] | [INFO] [stderr] 433 | let ts = ((self.t.to_le() as u64) << 32) | (self.i.to_le() as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.i.to_le())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bson.rs:324:65 [INFO] [stderr] | [INFO] [stderr] 324 | "$numberLong": (v.timestamp() * 1000) + ((v.nanosecond() / 1000000) as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(v.nanosecond() / 1000000)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/bson.rs:412:29 [INFO] [stderr] | [INFO] [stderr] 412 | "type": tval as i64, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(tval)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bson.rs:423:67 [INFO] [stderr] | [INFO] [stderr] 423 | "$numberLong" => (v.timestamp() * 1000) + v.nanosecond() as i64 / 1000000, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(v.nanosecond())` [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/bson.rs:446:34 [INFO] [stderr] | [INFO] [stderr] 446 | let timestamp = ((t as i64) << 32) + (i as i64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(t)` [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/bson.rs:446:54 [INFO] [stderr] | [INFO] [stderr] 446 | let timestamp = ((t as i64) << 32) + (i as i64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/mod.rs:133:80 [INFO] [stderr] | [INFO] [stderr] 133 | Bson::UtcDatetime(ref v) => write_i64(writer, (v.timestamp() * 1000) + (v.nanosecond() / 1_000_000) as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(v.nanosecond() / 1_000_000)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/compat/u2f.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [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: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:105:18 [INFO] [stderr] | [INFO] [stderr] 105 | for i in 0..TIMESTAMP_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[TIMESTAMP_OFFSET..(TIMESTAMP_SIZE + TIMESTAMP_OFFSET)].clone_from_slice(×tamp[..TIMESTAMP_SIZE])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/compat/u2f.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/compat/u2f.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [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: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:108:18 [INFO] [stderr] | [INFO] [stderr] 108 | for i in 0..MACHINE_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[MACHINE_ID_OFFSET..(MACHINE_ID_SIZE + MACHINE_ID_OFFSET)].clone_from_slice(&machine_id[..MACHINE_ID_SIZE])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:111:18 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 0..PROCESS_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[PROCESS_ID_OFFSET..(PROCESS_ID_SIZE + PROCESS_ID_OFFSET)].clone_from_slice(&process_id[..PROCESS_ID_SIZE])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:114:18 [INFO] [stderr] | [INFO] [stderr] 114 | for i in 0..COUNTER_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[COUNTER_OFFSET..(COUNTER_SIZE + COUNTER_OFFSET)].clone_from_slice(&counter[..COUNTER_SIZE])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:133:22 [INFO] [stderr] | [INFO] [stderr] 133 | for i in 0..12 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `byte_array[..12].clone_from_slice(&bytes[..12])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `buf` [INFO] [stderr] --> src/oid.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | for i in 0..MACHINE_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 162 | for (i, ) in buf.iter_mut().enumerate().take(MACHINE_ID_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | for i in 0..MACHINE_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[..MACHINE_ID_SIZE].clone_from_slice(&self.id[MACHINE_ID_OFFSET..(MACHINE_ID_SIZE + MACHINE_ID_OFFSET)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:176:18 [INFO] [stderr] | [INFO] [stderr] 176 | for i in 0..COUNTER_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[1..(COUNTER_SIZE + 1)].clone_from_slice(&self.id[COUNTER_OFFSET..(COUNTER_SIZE + COUNTER_OFFSET)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/oid.rs:206:27 [INFO] [stderr] | [INFO] [stderr] 206 | return Ok(bytes.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try dereferencing it: `*bytes` [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 loop variable `i` is only used to index `vec`. [INFO] [stderr] --> src/oid.rs:222:18 [INFO] [stderr] | [INFO] [stderr] 222 | for i in 0..MACHINE_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 222 | for in vec.iter_mut().take(MACHINE_ID_SIZE) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:75:22 [INFO] [stderr] | [INFO] [stderr] 75 | Ok(Bson::I32(value as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:82:54 [INFO] [stderr] | [INFO] [stderr] 82 | Err(Error::invalid_type(Unexpected::Unsigned(value as u64), &"a signed integer")) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:89:22 [INFO] [stderr] | [INFO] [stderr] 89 | Ok(Bson::I32(value as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:96:54 [INFO] [stderr] | [INFO] [stderr] 96 | Err(Error::invalid_type(Unexpected::Unsigned(value as u64), &"a signed integer")) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decoder/serde.rs:110:54 [INFO] [stderr] | [INFO] [stderr] 110 | Err(Error::invalid_type(Unexpected::Unsigned(value as u64), &"a signed integer")) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/ordered.rs:105:12 [INFO] [stderr] | [INFO] [stderr] 105 | inner: Map, fn((&'a String, &'a Bson)) -> &'a String>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/ordered.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 110 | inner: Map, fn((&'a String, &'a Bson)) -> &'a Bson>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/decoder/serde.rs:179:41 [INFO] [stderr] | [INFO] [stderr] 179 | Ok(Bson::from_extended_document(values.into())) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `values` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ordered.rs:180:5 [INFO] [stderr] | [INFO] [stderr] 180 | / pub fn iter<'a>(&'a self) -> OrderedDocumentIterator<'a> { [INFO] [stderr] 181 | | self.into_iter() [INFO] [stderr] 182 | | } [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: you should consider deriving a `Default` implementation for `ordered::OrderedDocumentVisitor` [INFO] [stderr] --> src/ordered.rs:393:5 [INFO] [stderr] | [INFO] [stderr] 393 | / pub fn new() -> OrderedDocumentVisitor { [INFO] [stderr] 394 | | OrderedDocumentVisitor { marker: PhantomData, } [INFO] [stderr] 395 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 388 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/encoder/error.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | / match self { [INFO] [stderr] 53 | | &EncoderError::IoError(ref inner) => Some(inner), [INFO] [stderr] 54 | | _ => None, [INFO] [stderr] 55 | | } [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] 52 | match *self { [INFO] [stderr] 53 | EncoderError::IoError(ref inner) => Some(inner), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `encoder::serde::Encoder` [INFO] [stderr] --> src/encoder/serde.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> Encoder { [INFO] [stderr] 63 | | Encoder [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 58 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:86:28 [INFO] [stderr] | [INFO] [stderr] 86 | self.serialize_i32(value as i32) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:92:26 [INFO] [stderr] | [INFO] [stderr] 92 | Ok(Bson::I32(value as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:100:28 [INFO] [stderr] | [INFO] [stderr] 100 | self.serialize_i32(value as i32) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:106:26 [INFO] [stderr] | [INFO] [stderr] 106 | Ok(Bson::I32(value as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:120:26 [INFO] [stderr] | [INFO] [stderr] 120 | Ok(Bson::I64(value as i64)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:145:28 [INFO] [stderr] | [INFO] [stderr] 145 | self.serialize_f64(value as f64) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:433:19 [INFO] [stderr] | [INFO] [stderr] 433 | let ts = ((self.t.to_le() as u64) << 32) | (self.i.to_le() as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.t.to_le())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/serde.rs:433:52 [INFO] [stderr] | [INFO] [stderr] 433 | let ts = ((self.t.to_le() as u64) << 32) | (self.i.to_le() as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.i.to_le())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/encoder/mod.rs:133:80 [INFO] [stderr] | [INFO] [stderr] 133 | Bson::UtcDatetime(ref v) => write_i64(writer, (v.timestamp() * 1000) + (v.nanosecond() / 1_000_000) as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(v.nanosecond() / 1_000_000)` [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: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:105:18 [INFO] [stderr] | [INFO] [stderr] 105 | for i in 0..TIMESTAMP_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[TIMESTAMP_OFFSET..(TIMESTAMP_SIZE + TIMESTAMP_OFFSET)].clone_from_slice(×tamp[..TIMESTAMP_SIZE])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:108:18 [INFO] [stderr] | [INFO] [stderr] 108 | for i in 0..MACHINE_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[MACHINE_ID_OFFSET..(MACHINE_ID_SIZE + MACHINE_ID_OFFSET)].clone_from_slice(&machine_id[..MACHINE_ID_SIZE])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:111:18 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 0..PROCESS_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[PROCESS_ID_OFFSET..(PROCESS_ID_SIZE + PROCESS_ID_OFFSET)].clone_from_slice(&process_id[..PROCESS_ID_SIZE])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:114:18 [INFO] [stderr] | [INFO] [stderr] 114 | for i in 0..COUNTER_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[COUNTER_OFFSET..(COUNTER_SIZE + COUNTER_OFFSET)].clone_from_slice(&counter[..COUNTER_SIZE])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:133:22 [INFO] [stderr] | [INFO] [stderr] 133 | for i in 0..12 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `byte_array[..12].clone_from_slice(&bytes[..12])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `buf` [INFO] [stderr] --> src/oid.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | for i in 0..MACHINE_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 162 | for (i, ) in buf.iter_mut().enumerate().take(MACHINE_ID_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | for i in 0..MACHINE_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[..MACHINE_ID_SIZE].clone_from_slice(&self.id[MACHINE_ID_OFFSET..(MACHINE_ID_SIZE + MACHINE_ID_OFFSET)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:176:18 [INFO] [stderr] | [INFO] [stderr] 176 | for i in 0..COUNTER_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[1..(COUNTER_SIZE + 1)].clone_from_slice(&self.id[COUNTER_OFFSET..(COUNTER_SIZE + COUNTER_OFFSET)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/oid.rs:206:27 [INFO] [stderr] | [INFO] [stderr] 206 | return Ok(bytes.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try dereferencing it: `*bytes` [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 loop variable `i` is only used to index `vec`. [INFO] [stderr] --> src/oid.rs:222:18 [INFO] [stderr] | [INFO] [stderr] 222 | for i in 0..MACHINE_ID_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 222 | for in vec.iter_mut().take(MACHINE_ID_SIZE) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/oid.rs:299:14 [INFO] [stderr] | [INFO] [stderr] 299 | for i in 0..COUNTER_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try replacing the loop by: `buf[1..(COUNTER_SIZE + 1)].clone_from_slice(&count_bytes[..COUNTER_SIZE])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/ordered.rs:105:12 [INFO] [stderr] | [INFO] [stderr] 105 | inner: Map, fn((&'a String, &'a Bson)) -> &'a String>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/ordered.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 110 | inner: Map, fn((&'a String, &'a Bson)) -> &'a Bson>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ordered.rs:180:5 [INFO] [stderr] | [INFO] [stderr] 180 | / pub fn iter<'a>(&'a self) -> OrderedDocumentIterator<'a> { [INFO] [stderr] 181 | | self.into_iter() [INFO] [stderr] 182 | | } [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: you should consider deriving a `Default` implementation for `ordered::OrderedDocumentVisitor` [INFO] [stderr] --> src/ordered.rs:393:5 [INFO] [stderr] | [INFO] [stderr] 393 | / pub fn new() -> OrderedDocumentVisitor { [INFO] [stderr] 394 | | OrderedDocumentVisitor { marker: PhantomData, } [INFO] [stderr] 395 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 388 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tmp` [INFO] [stderr] --> examples/test.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | let tmp = bson::to_bson(&map).unwrap(); [INFO] [stderr] | ^^^ help: consider using `_tmp` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/modules/encoder_decoder.rs:252:29 [INFO] [stderr] | [INFO] [stderr] 252 | let src = Utc.timestamp(1286705410, 0); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_286_705_410` [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] --> tests/modules/encoder_decoder.rs:284:13 [INFO] [stderr] | [INFO] [stderr] 284 | let t = 1530492218 * 1_000 + 999; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_530_492_218` [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] --> tests/modules/encoder_decoder.rs:296:48 [INFO] [stderr] | [INFO] [stderr] 296 | let expected = doc! { "A" => Utc.timestamp(1530492218, 999 * 1_000_000)}; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_530_492_218` [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] --> tests/modules/macros.rs:36:38 [INFO] [stderr] | [INFO] [stderr] 36 | "timestamp": Bson::TimeStamp(229999444), [INFO] [stderr] | ^^^^^^^^^ help: consider: `229_999_444` [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] --> tests/modules/macros.rs:84:40 [INFO] [stderr] | [INFO] [stderr] 84 | "timestamp" => Bson::TimeStamp(229999444), [INFO] [stderr] | ^^^^^^^^^ help: consider: `229_999_444` [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] --> tests/modules/oid.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(3735928559 as u32, oid.timestamp()); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `3_735_928_559` [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] --> tests/modules/oid.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | assert_eq!(11259375 as u32, oid.machine_id()); [INFO] [stderr] | ^^^^^^^^ help: consider: `11_259_375` [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] --> tests/modules/oid.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | assert_eq!(1122867 as u32, oid.counter()); [INFO] [stderr] | ^^^^^^^ help: consider: `1_122_867` [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] --> tests/modules/oid.rs:28:21 [INFO] [stderr] | [INFO] [stderr] 28 | let time: u32 = 2000000; [INFO] [stderr] | ^^^^^^^ help: consider: `2_000_000` [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] --> tests/modules/oid.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | let time: u32 = 3857379; [INFO] [stderr] | ^^^^^^^ help: consider: `3_857_379` [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] --> tests/serde.rs:108:54 [INFO] [stderr] | [INFO] [stderr] 108 | let now = now.with_nanosecond(now.nanosecond() / 1000000 * 1000000).unwrap(); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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] --> tests/serde.rs:108:64 [INFO] [stderr] | [INFO] [stderr] 108 | let now = now.with_nanosecond(now.nanosecond() / 1000000 * 1000000).unwrap(); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> tests/serde.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | let foo = Foo { ts: TimeStamp { t: 12, i: 10 } }; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::blacklisted_name)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> tests/serde.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | let foo: Foo = bson::from_bson(Bson::Document(doc! { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> tests/serde.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | let foo = Foo { date: From::from(now) }; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> tests/modules/macros.rs:13:14 [INFO] [stderr] | [INFO] [stderr] 13 | for i in 0..12 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `bytes[..12].clone_from_slice(&string_bytes[..12])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> tests/serde.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | let foo = Foo { x: 20 }; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> tests/modules/macros.rs:61:14 [INFO] [stderr] | [INFO] [stderr] 61 | for i in 0..12 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `bytes[..12].clone_from_slice(&string_bytes[..12])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> tests/modules/macros.rs:109:20 [INFO] [stderr] | [INFO] [stderr] 109 | let expected = format!("{{ a: \"foo\", b: {{ ok: \"then\" }} }}"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"{{ a: \"foo\", b: {{ ok: \"then\" }} }}".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> tests/modules/macros.rs:120:20 [INFO] [stderr] | [INFO] [stderr] 120 | let expected = format!("{{ a: \"foo\", b: {{ ok: \"then\" }} }}"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"{{ a: \"foo\", b: {{ ok: \"then\" }} }}".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> tests/modules/macros.rs:125:1 [INFO] [stderr] | [INFO] [stderr] 125 | / fn recursive_macro() { [INFO] [stderr] 126 | | let doc = doc! { [INFO] [stderr] 127 | | "a": "foo", [INFO] [stderr] 128 | | "b": { [INFO] [stderr] ... | [INFO] [stderr] 237 | | } [INFO] [stderr] 238 | | } [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/modules/macros.rs:176:63 [INFO] [stderr] | [INFO] [stderr] 176 | Some(&Bson::FloatingPoint(ref fp)) => assert_eq!(42.0, *fp), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/modules/macros.rs:176:63 [INFO] [stderr] | [INFO] [stderr] 176 | Some(&Bson::FloatingPoint(ref fp)) => assert_eq!(42.0, *fp), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly [INFO] [stderr] --> tests/serde.rs:234:21 [INFO] [stderr] | [INFO] [stderr] 234 | let (x1, y1) = (3.14, -2.71); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::approx_constant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> tests/modules/ordered.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | / fn test_getters() { [INFO] [stderr] 39 | | let datetime = Utc::now(); [INFO] [stderr] 40 | | let cloned_dt = datetime.clone(); [INFO] [stderr] 41 | | let binary = vec![0, 1, 2, 3, 4]; [INFO] [stderr] ... | [INFO] [stderr] 103 | | assert_eq!(Ok(&binary), doc.get_binary_generic("binary")); [INFO] [stderr] 104 | | } [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `bson`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> tests/modules/ordered.rs:40:21 [INFO] [stderr] | [INFO] [stderr] 40 | let cloned_dt = datetime.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `datetime` [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] --> tests/modules/ordered.rs:92:40 [INFO] [stderr] | [INFO] [stderr] 92 | assert_eq!(Some(&Bson::UtcDatetime(datetime.clone())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `datetime` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/modules/ser.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | assert_eq!(f, 240.5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/modules/ser.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | assert_eq!(f, 240.5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `bson`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "1205f96ca83a49ea6e8361ef5b1d28be493bf79975fab367807c83a616c70547"` [INFO] running `"docker" "rm" "-f" "1205f96ca83a49ea6e8361ef5b1d28be493bf79975fab367807c83a616c70547"` [INFO] [stdout] 1205f96ca83a49ea6e8361ef5b1d28be493bf79975fab367807c83a616c70547