[INFO] crate bao 0.5.0 is already in cache [INFO] extracting crate bao 0.5.0 into work/ex/clippy-test-run/sources/stable/reg/bao/0.5.0 [INFO] extracting crate bao 0.5.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bao/0.5.0 [INFO] validating manifest of bao-0.5.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 bao-0.5.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 bao-0.5.0 [INFO] finished frobbing bao-0.5.0 [INFO] frobbed toml for bao-0.5.0 written to work/ex/clippy-test-run/sources/stable/reg/bao/0.5.0/Cargo.toml [INFO] started frobbing bao-0.5.0 [INFO] finished frobbing bao-0.5.0 [INFO] frobbed toml for bao-0.5.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bao/0.5.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 bao-0.5.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/bao/0.5.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] 7df211add2083ea262e7ca2be0ae820a67f1981043f1718283cfd25819b3b96e [INFO] running `"docker" "start" "-a" "7df211add2083ea262e7ca2be0ae820a67f1981043f1718283cfd25819b3b96e"` [INFO] [stderr] Checking copy_in_place v0.2.0 [INFO] [stderr] Checking crossbeam-epoch v0.3.1 [INFO] [stderr] Checking blake2b_simd v0.4.1 [INFO] [stderr] Checking crossbeam-deque v0.2.0 [INFO] [stderr] Checking rayon-core v1.4.1 [INFO] [stderr] Checking rayon v1.0.3 [INFO] [stderr] Checking bao v0.5.0 (/opt/crater/workdir) [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/encode.rs:1154:21 [INFO] [stderr] | [INFO] [stderr] 1154 | finalization: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Chunk { size, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/encode.rs:1168:21 [INFO] [stderr] | [INFO] [stderr] 1168 | finalization: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Chunk { size, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: unsequenced read of a variable [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::eval_order_dependence)] on by default [INFO] [stderr] note: whether read occurs before this write depends on evaluation order [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eval_order_dependence [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unsequenced read of a variable [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: whether read occurs before this write depends on evaluation order [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eval_order_dependence [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/decode.rs:516:54 [INFO] [stderr] | [INFO] [stderr] 516 | pub(crate) fn feed_header(&mut self, header: &[u8; HEADER_SIZE]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `[u8; HEADER_SIZE]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: item `decode::Reader` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/decode.rs:761:1 [INFO] [stderr] | [INFO] [stderr] 761 | / impl Reader { [INFO] [stderr] 762 | | pub fn new_outboard(inner: T, outboard: O, hash: &Hash) -> Self { [INFO] [stderr] 763 | | Self { [INFO] [stderr] 764 | | shared: ReaderShared::new(inner, Some(outboard), hash), [INFO] [stderr] ... | [INFO] [stderr] 773 | | } [INFO] [stderr] 774 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:831:52 [INFO] [stderr] | [INFO] [stderr] 831 | let outboard_offset = offset - content_position as u128; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(content_position)` [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 u64 to i128 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:855:15 [INFO] [stderr] | [INFO] [stderr] 855 | let sum = position as i128 + offset as i128; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i128::from(position)` [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 i64 to i128 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:855:34 [INFO] [stderr] | [INFO] [stderr] 855 | let sum = position as i128 + offset as i128; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i128::from(offset)` [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 u64 to i128 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:861:21 [INFO] [stderr] | [INFO] [stderr] 861 | } else if sum > u64::max_value() as i128 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i128::from(u64::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:362:5 [INFO] [stderr] | [INFO] [stderr] 362 | content_len as u128 + outboard_size(content_len) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(content_len)` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:374:5 [INFO] [stderr] | [INFO] [stderr] 374 | content_len as u128 + outboard_subtree_size(content_len) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(content_len)` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:382:5 [INFO] [stderr] | [INFO] [stderr] 382 | num_parents as u128 * PARENT_SIZE as u128 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(num_parents)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/encode.rs:907:54 [INFO] [stderr] | [INFO] [stderr] 907 | pub(crate) fn feed_header(&mut self, header: &[u8; HEADER_SIZE]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `[u8; HEADER_SIZE]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:931:36 [INFO] [stderr] | [INFO] [stderr] 931 | self.encoded_offset += self.subtree_size() as u128; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(self.subtree_size())` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:1143:52 [INFO] [stderr] | [INFO] [stderr] 1143 | let outboard_offset = offset - content_position as u128; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(content_position)` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:1197:17 [INFO] [stderr] | [INFO] [stderr] 1197 | if offset > u64::max_value() as u128 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(u64::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/hash.rs:103:33 [INFO] [stderr] | [INFO] [stderr] 103 | pub(crate) fn decode_len(bytes: &[u8; HEADER_SIZE]) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `[u8; HEADER_SIZE]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/hash.rs:232:31 [INFO] [stderr] | [INFO] [stderr] 232 | array_ref!(input, 0 * CHUNK_SIZE, CHUNK_SIZE), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::erasing_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `CHUNK_SIZE` [INFO] [stderr] --> src/hash.rs:233:31 [INFO] [stderr] | [INFO] [stderr] 233 | array_ref!(input, 1 * CHUNK_SIZE, CHUNK_SIZE), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/hash.rs:257:31 [INFO] [stderr] | [INFO] [stderr] 257 | array_ref!(input, 0 * CHUNK_SIZE, CHUNK_SIZE), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `CHUNK_SIZE` [INFO] [stderr] --> src/hash.rs:258:31 [INFO] [stderr] | [INFO] [stderr] 258 | array_ref!(input, 1 * CHUNK_SIZE, CHUNK_SIZE), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `hash::Writer` [INFO] [stderr] --> src/hash.rs:458:5 [INFO] [stderr] | [INFO] [stderr] 458 | / pub fn new() -> Self { [INFO] [stderr] 459 | | Self { [INFO] [stderr] 460 | | chunk: new_chunk_state(), [INFO] [stderr] 461 | | state: State::new(), [INFO] [stderr] 462 | | } [INFO] [stderr] 463 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 457 | impl Default for hash::Writer { [INFO] [stderr] 458 | fn default() -> Self { [INFO] [stderr] 459 | Self::new() [INFO] [stderr] 460 | } [INFO] [stderr] 461 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `bao`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/decode.rs:1198:25 [INFO] [stderr] | [INFO] [stderr] 1198 | let input_len = 0b100101 * CHUNK_SIZE; [INFO] [stderr] | ^^^^^^^^ help: consider: `0b10_0101` [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: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/encode.rs:1154:21 [INFO] [stderr] | [INFO] [stderr] 1154 | finalization: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Chunk { size, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/encode.rs:1168:21 [INFO] [stderr] | [INFO] [stderr] 1168 | finalization: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Chunk { size, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/hash.rs:554:14 [INFO] [stderr] | [INFO] [stderr] 554 | (0xffffffffffffffff, 0x8000000000000000), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xffff_ffff_ffff_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/hash.rs:554:34 [INFO] [stderr] | [INFO] [stderr] 554 | (0xffffffffffffffff, 0x8000000000000000), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x8000_0000_0000_0000` [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: unsequenced read of a variable [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::eval_order_dependence)] on by default [INFO] [stderr] note: whether read occurs before this write depends on evaluation order [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eval_order_dependence [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unsequenced read of a variable [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: whether read occurs before this write depends on evaluation order [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eval_order_dependence [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/decode.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let (left, right) = array_refs!(parent, HASH_SIZE, HASH_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/decode.rs:516:54 [INFO] [stderr] | [INFO] [stderr] 516 | pub(crate) fn feed_header(&mut self, header: &[u8; HEADER_SIZE]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `[u8; HEADER_SIZE]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: item `decode::Reader` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/decode.rs:761:1 [INFO] [stderr] | [INFO] [stderr] 761 | / impl Reader { [INFO] [stderr] 762 | | pub fn new_outboard(inner: T, outboard: O, hash: &Hash) -> Self { [INFO] [stderr] 763 | | Self { [INFO] [stderr] 764 | | shared: ReaderShared::new(inner, Some(outboard), hash), [INFO] [stderr] ... | [INFO] [stderr] 773 | | } [INFO] [stderr] 774 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:831:52 [INFO] [stderr] | [INFO] [stderr] 831 | let outboard_offset = offset - content_position as u128; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(content_position)` [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 u64 to i128 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:855:15 [INFO] [stderr] | [INFO] [stderr] 855 | let sum = position as i128 + offset as i128; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i128::from(position)` [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 i64 to i128 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:855:34 [INFO] [stderr] | [INFO] [stderr] 855 | let sum = position as i128 + offset as i128; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i128::from(offset)` [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 u64 to i128 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:861:21 [INFO] [stderr] | [INFO] [stderr] 861 | } else if sum > u64::max_value() as i128 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i128::from(u64::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:1033:22 [INFO] [stderr] | [INFO] [stderr] 1033 | if counter < u8::max_value() as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u8::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:1035:29 [INFO] [stderr] | [INFO] [stderr] 1035 | } else if counter < u16::max_value() as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u16::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/decode.rs:1037:29 [INFO] [stderr] | [INFO] [stderr] 1037 | } else if counter < u32::max_value() as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u32::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:362:5 [INFO] [stderr] | [INFO] [stderr] 362 | content_len as u128 + outboard_size(content_len) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(content_len)` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:374:5 [INFO] [stderr] | [INFO] [stderr] 374 | content_len as u128 + outboard_subtree_size(content_len) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(content_len)` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:382:5 [INFO] [stderr] | [INFO] [stderr] 382 | num_parents as u128 * PARENT_SIZE as u128 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(num_parents)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/encode.rs:907:54 [INFO] [stderr] | [INFO] [stderr] 907 | pub(crate) fn feed_header(&mut self, header: &[u8; HEADER_SIZE]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `[u8; HEADER_SIZE]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:931:36 [INFO] [stderr] | [INFO] [stderr] 931 | self.encoded_offset += self.subtree_size() as u128; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(self.subtree_size())` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:1143:52 [INFO] [stderr] | [INFO] [stderr] 1143 | let outboard_offset = offset - content_position as u128; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(content_position)` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/encode.rs:1197:17 [INFO] [stderr] | [INFO] [stderr] 1197 | if offset > u64::max_value() as u128 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(u64::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/hash.rs:103:33 [INFO] [stderr] | [INFO] [stderr] 103 | pub(crate) fn decode_len(bytes: &[u8; HEADER_SIZE]) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `[u8; HEADER_SIZE]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/hash.rs:232:31 [INFO] [stderr] | [INFO] [stderr] 232 | array_ref!(input, 0 * CHUNK_SIZE, CHUNK_SIZE), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::erasing_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `CHUNK_SIZE` [INFO] [stderr] --> src/hash.rs:233:31 [INFO] [stderr] | [INFO] [stderr] 233 | array_ref!(input, 1 * CHUNK_SIZE, CHUNK_SIZE), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/hash.rs:257:31 [INFO] [stderr] | [INFO] [stderr] 257 | array_ref!(input, 0 * CHUNK_SIZE, CHUNK_SIZE), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `CHUNK_SIZE` [INFO] [stderr] --> src/hash.rs:258:31 [INFO] [stderr] | [INFO] [stderr] 258 | array_ref!(input, 1 * CHUNK_SIZE, CHUNK_SIZE), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `hash::Writer` [INFO] [stderr] --> src/hash.rs:458:5 [INFO] [stderr] | [INFO] [stderr] 458 | / pub fn new() -> Self { [INFO] [stderr] 459 | | Self { [INFO] [stderr] 460 | | chunk: new_chunk_state(), [INFO] [stderr] 461 | | state: State::new(), [INFO] [stderr] 462 | | } [INFO] [stderr] 463 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 457 | impl Default for hash::Writer { [INFO] [stderr] 458 | fn default() -> Self { [INFO] [stderr] 459 | Self::new() [INFO] [stderr] 460 | } [INFO] [stderr] 461 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `bao`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "7df211add2083ea262e7ca2be0ae820a67f1981043f1718283cfd25819b3b96e"` [INFO] running `"docker" "rm" "-f" "7df211add2083ea262e7ca2be0ae820a67f1981043f1718283cfd25819b3b96e"` [INFO] [stdout] 7df211add2083ea262e7ca2be0ae820a67f1981043f1718283cfd25819b3b96e