[INFO] cloning repository https://github.com/mrsmkl/ipfs_hash [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mrsmkl/ipfs_hash" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmrsmkl%2Fipfs_hash", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmrsmkl%2Fipfs_hash'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 706a540cb9d2dde2e73a3f70b7bbd055b0977965 [INFO] linting mrsmkl/ipfs_hash/706a540cb9d2dde2e73a3f70b7bbd055b0977965 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmrsmkl%2Fipfs_hash" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mrsmkl/ipfs_hash [INFO] finished tweaking git repo https://github.com/mrsmkl/ipfs_hash [INFO] tweaked toml for git repo https://github.com/mrsmkl/ipfs_hash written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mrsmkl/ipfs_hash on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mrsmkl/ipfs_hash already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded crunchy v0.1.6 [INFO] [stderr] Downloaded multihash v0.8.0 [INFO] [stderr] Downloaded error-chain v0.11.0 [INFO] [stderr] Downloaded quick-protobuf v0.6.0 [INFO] [stderr] Downloaded sha1 v0.5.0 [INFO] [stderr] Downloaded rustc-demangle v0.1.8 [INFO] [stderr] Downloaded backtrace v0.3.8 [INFO] [stderr] Downloaded tiny-keccak v1.4.2 [INFO] [stderr] Downloaded libc v0.2.41 [INFO] [stderr] Downloaded backtrace-sys v0.1.19 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 22d8c0522d4d08034c9472f74caad6d4e0ebdd93e3d063db501f553e509b928e [INFO] running `Command { std: "docker" "start" "-a" "22d8c0522d4d08034c9472f74caad6d4e0ebdd93e3d063db501f553e509b928e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "22d8c0522d4d08034c9472f74caad6d4e0ebdd93e3d063db501f553e509b928e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "22d8c0522d4d08034c9472f74caad6d4e0ebdd93e3d063db501f553e509b928e", kill_on_drop: false }` [INFO] [stdout] 22d8c0522d4d08034c9472f74caad6d4e0ebdd93e3d063db501f553e509b928e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 03b82519aaf99a10e2851686dcd53bdf7dd3d9a467296da1b982ce02ec75365e [INFO] running `Command { std: "docker" "start" "-a" "03b82519aaf99a10e2851686dcd53bdf7dd3d9a467296da1b982ce02ec75365e", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Compiling typenum v1.10.0 [INFO] [stderr] Compiling backtrace-sys v0.1.19 [INFO] [stderr] Checking libc v0.2.41 [INFO] [stderr] Compiling crunchy v0.1.6 [INFO] [stderr] Checking arrayref v0.3.4 [INFO] [stderr] Checking byte-tools v0.2.0 [INFO] [stderr] Checking rustc-demangle v0.1.8 [INFO] [stderr] Checking fake-simd v0.1.2 [INFO] [stderr] Checking byteorder v1.2.3 [INFO] [stderr] Checking sha1 v0.5.0 [INFO] [stderr] Checking base58 v0.1.0 [INFO] [stderr] Checking block-buffer v0.3.3 [INFO] [stderr] Checking tiny-keccak v1.4.2 [INFO] [stderr] Checking generic-array v0.9.0 [INFO] [stderr] Checking digest v0.7.2 [INFO] [stderr] Checking sha2 v0.7.1 [INFO] [stderr] Checking multihash v0.8.0 [INFO] [stderr] Checking backtrace v0.3.8 [INFO] [stderr] Checking error-chain v0.11.0 [INFO] [stderr] Checking quick-protobuf v0.6.0 [INFO] [stderr] Checking ipfs_hash v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/proto/ipfs.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / 0 [INFO] [stdout] 44 | | + self.Hash.as_ref().map_or(0, |m| 1 + sizeof_len((m).len())) [INFO] [stdout] | |_____________________________________________________________________^ help: consider reducing it to: `self.Hash.as_ref().map_or(0, |m| 1 + sizeof_len((m).len()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/proto/ipfs.rs:46:63 [INFO] [stdout] | [INFO] [stdout] 46 | + self.Tsize.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(*(m))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/proto/ipfs.rs:50:81 [INFO] [stdout] | [INFO] [stdout] 50 | if let Some(ref s) = self.Hash { w.write_with_tag(10, |w| w.write_bytes(&**s))?; } [INFO] [stdout] | ^^^^ help: try: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/proto/ipfs.rs:51:82 [INFO] [stdout] | [INFO] [stdout] 51 | if let Some(ref s) = self.Name { w.write_with_tag(18, |w| w.write_string(&**s))?; } [INFO] [stdout] | ^^^^ help: try: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/proto/ipfs.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | / 0 [INFO] [stdout] 81 | | + self.Links.iter().map(|s| 1 + sizeof_len((s).get_size())).sum::() [INFO] [stdout] | |__________________________________________________________________________________^ help: consider reducing it to: `self.Links.iter().map(|s| 1 + sizeof_len((s).get_size())).sum::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/proto/ipfs.rs:87:81 [INFO] [stdout] | [INFO] [stdout] 87 | if let Some(ref s) = self.Data { w.write_with_tag(10, |w| w.write_bytes(&**s))?; } [INFO] [stdout] | ^^^^ help: try: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | fn hash_block(vec : &Vec) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 40 - fn hash_block(vec : &Vec) -> String { [INFO] [stdout] 40 + fn hash_block(vec : &[u8]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/main.rs:103:38 [INFO] [stdout] | [INFO] [stdout] 103 | let hash = encode(Hash::SHA2256, &crump.to_vec()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: use: `crump` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/main.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | fn data_link(a : &[u8]) -> PBLink { [INFO] [stdout] | ^^^^^ ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 14 | fn data_link(a : &[u8]) -> PBLink<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/main.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | fn ipfs_tree(vec : &[u8]) -> PBLink { [INFO] [stdout] | ^^^^^ ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 45 | fn ipfs_tree(vec : &[u8]) -> PBLink<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/proto/ipfs.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / 0 [INFO] [stdout] 44 | | + self.Hash.as_ref().map_or(0, |m| 1 + sizeof_len((m).len())) [INFO] [stdout] | |_____________________________________________________________________^ help: consider reducing it to: `self.Hash.as_ref().map_or(0, |m| 1 + sizeof_len((m).len()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/proto/ipfs.rs:46:63 [INFO] [stdout] | [INFO] [stdout] 46 | + self.Tsize.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(*(m))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/proto/ipfs.rs:50:81 [INFO] [stdout] | [INFO] [stdout] 50 | if let Some(ref s) = self.Hash { w.write_with_tag(10, |w| w.write_bytes(&**s))?; } [INFO] [stdout] | ^^^^ help: try: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/proto/ipfs.rs:51:82 [INFO] [stdout] | [INFO] [stdout] 51 | if let Some(ref s) = self.Name { w.write_with_tag(18, |w| w.write_string(&**s))?; } [INFO] [stdout] | ^^^^ help: try: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/proto/ipfs.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | / 0 [INFO] [stdout] 81 | | + self.Links.iter().map(|s| 1 + sizeof_len((s).get_size())).sum::() [INFO] [stdout] | |__________________________________________________________________________________^ help: consider reducing it to: `self.Links.iter().map(|s| 1 + sizeof_len((s).get_size())).sum::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/proto/ipfs.rs:87:81 [INFO] [stdout] | [INFO] [stdout] 87 | if let Some(ref s) = self.Data { w.write_with_tag(10, |w| w.write_bytes(&**s))?; } [INFO] [stdout] | ^^^^ help: try: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | fn hash_block(vec : &Vec) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 40 - fn hash_block(vec : &Vec) -> String { [INFO] [stdout] 40 + fn hash_block(vec : &[u8]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/main.rs:103:38 [INFO] [stdout] | [INFO] [stdout] 103 | let hash = encode(Hash::SHA2256, &crump.to_vec()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: use: `crump` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/main.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | fn data_link(a : &[u8]) -> PBLink { [INFO] [stdout] | ^^^^^ ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 14 | fn data_link(a : &[u8]) -> PBLink<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/main.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | fn ipfs_tree(vec : &[u8]) -> PBLink { [INFO] [stdout] | ^^^^^ ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 45 | fn ipfs_tree(vec : &[u8]) -> PBLink<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.31s [INFO] running `Command { std: "docker" "inspect" "03b82519aaf99a10e2851686dcd53bdf7dd3d9a467296da1b982ce02ec75365e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "03b82519aaf99a10e2851686dcd53bdf7dd3d9a467296da1b982ce02ec75365e", kill_on_drop: false }` [INFO] [stdout] 03b82519aaf99a10e2851686dcd53bdf7dd3d9a467296da1b982ce02ec75365e