[INFO] cloning repository https://github.com/tig-foundation/tig-monorepo [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tig-foundation/tig-monorepo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftig-foundation%2Ftig-monorepo", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftig-foundation%2Ftig-monorepo'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] dd053372d6abe9ad153ed5e0a01262b488a85ee7 [INFO] linting tig-foundation/tig-monorepo against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftig-foundation%2Ftig-monorepo" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] [stderr] Updating files: 26% (162/611) Updating files: 27% (165/611) Updating files: 28% (172/611) Updating files: 29% (178/611) Updating files: 30% (184/611) Updating files: 31% (190/611) Updating files: 32% (196/611) Updating files: 33% (202/611) Updating files: 34% (208/611) Updating files: 35% (214/611) Updating files: 36% (220/611) Updating files: 37% (227/611) Updating files: 38% (233/611) Updating files: 39% (239/611) Updating files: 40% (245/611) Updating files: 41% (251/611) Updating files: 42% (257/611) Updating files: 43% (263/611) Updating files: 44% (269/611) Updating files: 45% (275/611) Updating files: 46% (282/611) Updating files: 47% (288/611) Updating files: 48% (294/611) Updating files: 49% (300/611) Updating files: 50% (306/611) Updating files: 51% (312/611) Updating files: 52% (318/611) Updating files: 53% (324/611) Updating files: 54% (330/611) Updating files: 55% (337/611) Updating files: 56% (343/611) Updating files: 57% (349/611) Updating files: 58% (355/611) Updating files: 59% (361/611) Updating files: 60% (367/611) Updating files: 61% (373/611) Updating files: 62% (379/611) Updating files: 63% (385/611) Updating files: 64% (392/611) Updating files: 65% (398/611) Updating files: 66% (404/611) Updating files: 67% (410/611) Updating files: 68% (416/611) Updating files: 69% (422/611) Updating files: 70% (428/611) Updating files: 71% (434/611) Updating files: 72% (440/611) Updating files: 73% (447/611) Updating files: 74% (453/611) Updating files: 75% (459/611) Updating files: 76% (465/611) Updating files: 77% (471/611) Updating files: 78% (477/611) Updating files: 79% (483/611) Updating files: 80% (489/611) Updating files: 81% (495/611) Updating files: 82% (502/611) Updating files: 83% (508/611) Updating files: 84% (514/611) Updating files: 85% (520/611) Updating files: 86% (526/611) Updating files: 87% (532/611) Updating files: 88% (538/611) Updating files: 89% (544/611) Updating files: 90% (550/611) Updating files: 91% (557/611) Updating files: 92% (563/611) Updating files: 93% (569/611) Updating files: 94% (575/611) Updating files: 95% (581/611) Updating files: 96% (587/611) Updating files: 97% (593/611) Updating files: 98% (599/611) Updating files: 99% (605/611) Updating files: 100% (611/611) Updating files: 100% (611/611), done. [INFO] started tweaking git repo https://github.com/tig-foundation/tig-monorepo [INFO] finished tweaking git repo https://github.com/tig-foundation/tig-monorepo [INFO] tweaked toml for git repo https://github.com/tig-foundation/tig-monorepo written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tig-foundation/tig-monorepo 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/tig-foundation/tig-monorepo 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] Updating git repository `https://github.com/tig-foundation/cudarc.git` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded logging_timer_proc_macros v1.1.1 [INFO] [stderr] Downloaded logging_timer v1.1.1 [INFO] [stderr] Downloaded security-framework v2.10.0 [INFO] [stderr] Downloaded security-framework-sys v2.10.0 [INFO] [stderr] Downloaded wide v0.7.32 [INFO] [stderr] Downloaded statrs v0.18.0 [INFO] [stderr] Downloaded web3 v0.19.0 [INFO] [stderr] Downloaded h2 v0.4.4 [INFO] [stderr] Downloaded reqwest v0.12.3 [INFO] [stderr] Downloaded syn v2.0.61 [INFO] [stderr] Downloaded nalgebra v0.33.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] c0f92e7b7b6d95c6a7bb2d086e3ccc450703611ba34934ad495548423d16f256 [INFO] running `Command { std: "docker" "start" "-a" "c0f92e7b7b6d95c6a7bb2d086e3ccc450703611ba34934ad495548423d16f256", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c0f92e7b7b6d95c6a7bb2d086e3ccc450703611ba34934ad495548423d16f256", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c0f92e7b7b6d95c6a7bb2d086e3ccc450703611ba34934ad495548423d16f256", kill_on_drop: false }` [INFO] [stdout] c0f92e7b7b6d95c6a7bb2d086e3ccc450703611ba34934ad495548423d16f256 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 0f5f8b1bbe60e61a51314fb59dde018541622f3ace98e73334266f8e47e6a790 [INFO] running `Command { std: "docker" "start" "-a" "0f5f8b1bbe60e61a51314fb59dde018541622f3ace98e73334266f8e47e6a790", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.82 [INFO] [stderr] Compiling autocfg v1.2.0 [INFO] [stderr] Checking bytes v1.6.0 [INFO] [stderr] Compiling cc v1.1.18 [INFO] [stderr] Checking getrandom v0.2.14 [INFO] [stderr] Checking memchr v2.7.2 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Compiling serde_json v1.0.115 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking socket2 v0.5.6 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Compiling syn v2.0.61 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Compiling anyhow v1.0.81 [INFO] [stderr] Checking miniz_oxide v0.7.2 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking rlp v0.5.2 [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Checking fixed-hash v0.8.0 [INFO] [stderr] Checking impl-rlp v0.3.0 [INFO] [stderr] Checking uint v0.9.5 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking regex-syntax v0.8.3 [INFO] [stderr] Checking flate2 v1.0.28 [INFO] [stderr] Compiling openssl-sys v0.9.102 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Compiling secp256k1-sys v0.8.1 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Compiling openssl v0.10.64 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Checking sha3 v0.10.8 [INFO] [stderr] Checking sha-1 v0.9.8 [INFO] [stderr] Checking headers-core v0.2.0 [INFO] [stderr] Compiling blake3 v1.5.4 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking base64 v0.13.1 [INFO] [stderr] Checking headers v0.3.9 [INFO] [stderr] Checking idna v0.4.0 [INFO] [stderr] Checking constant_time_eq v0.3.1 [INFO] [stderr] Compiling matrixmultiply v0.3.8 [INFO] [stderr] Checking bytemuck v1.22.0 [INFO] [stderr] Checking base64 v0.22.0 [INFO] [stderr] Checking regex-automata v0.4.6 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking safe_arch v0.7.4 [INFO] [stderr] Checking num-complex v0.4.5 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking wide v0.7.32 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking ndarray v0.15.6 [INFO] [stderr] Checking anstyle-parse v0.2.4 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Checking anstyle-query v1.0.3 [INFO] [stderr] Checking anstream v0.6.14 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking clap_builder v4.5.2 [INFO] [stderr] Compiling log v0.4.21 [INFO] [stderr] Checking libloading v0.8.6 [INFO] [stderr] Checking simba v0.9.0 [INFO] [stderr] Checking regex v1.10.4 [INFO] [stderr] Checking secp256k1 v0.27.0 [INFO] [stderr] Compiling serde_derive v1.0.197 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking tokio v1.41.1 [INFO] [stderr] Compiling thiserror-impl v1.0.58 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling derive_more v0.99.17 [INFO] [stderr] Checking thiserror v1.0.58 [INFO] [stderr] Checking pin-project v1.1.5 [INFO] [stderr] Checking clap v4.5.4 [INFO] [stderr] Compiling logging_timer_proc_macros v1.1.1 [INFO] [stderr] Checking logging_timer v1.1.1 [INFO] [stderr] Checking serde v1.0.197 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking soketto v0.7.1 [INFO] [stderr] Checking nalgebra v0.33.2 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking web3-async-native-tls v0.4.0 [INFO] [stderr] Checking tokio-stream v0.1.15 [INFO] [stderr] Checking impl-serde v0.4.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking primitive-types v0.12.2 [INFO] [stderr] Checking ethbloom v0.13.0 [INFO] [stderr] Checking jsonrpc-core v18.0.0 [INFO] [stderr] Checking ethereum-types v0.14.1 [INFO] [stderr] Checking ethabi v18.0.0 [INFO] [stderr] Checking hyper v0.14.28 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking statrs v0.18.0 [INFO] [stderr] Checking web3 v0.19.0 [INFO] [stderr] Checking tig-challenges v0.1.0 (/opt/rustwide/workdir/tig-challenges) [INFO] [stdout] warning: unused macro definition: `conditional_pub` [INFO] [stdout] --> tig-challenges/src/lib.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | macro_rules! conditional_pub { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `impl_kv_string_serde` [INFO] [stdout] --> tig-challenges/src/lib.rs:15:14 [INFO] [stdout] | [INFO] [stdout] 15 | macro_rules! impl_kv_string_serde { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `impl_base64_serde` [INFO] [stdout] --> tig-challenges/src/lib.rs:89:14 [INFO] [stdout] | [INFO] [stdout] 89 | macro_rules! impl_base64_serde { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `QUALITY_PRECISION` is never used [INFO] [stdout] --> tig-challenges/src/lib.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const QUALITY_PRECISION: i32 = 1_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `conditional_pub` [INFO] [stdout] --> tig-challenges/src/lib.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | macro_rules! conditional_pub { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `impl_kv_string_serde` [INFO] [stdout] --> tig-challenges/src/lib.rs:15:14 [INFO] [stdout] | [INFO] [stdout] 15 | macro_rules! impl_kv_string_serde { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `impl_base64_serde` [INFO] [stdout] --> tig-challenges/src/lib.rs:89:14 [INFO] [stdout] | [INFO] [stdout] 89 | macro_rules! impl_base64_serde { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `QUALITY_PRECISION` is never used [INFO] [stdout] --> tig-challenges/src/lib.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const QUALITY_PRECISION: i32 = 1_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tig-algorithms v0.1.0 (/opt/rustwide/workdir/tig-algorithms) [INFO] [stdout] warning: type alias `HashMap` is never used [INFO] [stdout] --> tig-algorithms/src/lib.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) type HashMap = std::collections::HashMap; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HashSet` is never used [INFO] [stdout] --> tig-algorithms/src/lib.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) type HashSet = std::collections::HashSet; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HashMap` is never used [INFO] [stdout] --> tig-algorithms/src/lib.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) type HashMap = std::collections::HashMap; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HashSet` is never used [INFO] [stdout] --> tig-algorithms/src/lib.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) type HashSet = std::collections::HashSet; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tig-binary v0.1.0 (/opt/rustwide/workdir/tig-binary) [INFO] [stderr] Checking tig-utils v0.1.0 (/opt/rustwide/workdir/tig-utils) [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tig-utils/src/eth.rs:55:24 [INFO] [stdout] | [INFO] [stdout] 55 | H160::from_str(&address)?, [INFO] [stdout] | ^^^^^^^^ help: change this to: `address` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> tig-utils/src/merkle_tree.rs:106:51 [INFO] [stdout] | [INFO] [stdout] 106 | .map(|(d, h)| format!("{:02x}{}", d, h.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> tig-utils/src/merkle_tree.rs:153:53 [INFO] [stdout] | [INFO] [stdout] 153 | let mut new_hashes = Vec::with_capacity((hashes.len() + 1) / 2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `hashes.len().div_ceil(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> tig-utils/src/merkle_tree.rs:188:48 [INFO] [stdout] | [INFO] [stdout] 188 | branch.push((depth, if idx % 2 == 0 { right } else { left }.clone())); [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `idx.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> tig-utils/src/merkle_tree.rs:226:16 [INFO] [stdout] | [INFO] [stdout] 226 | if idx % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `idx.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-utils/src/number.rs:58:34 [INFO] [stdout] | [INFO] [stdout] 58 | let mut positive_terms = one.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `one` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-utils/src/number.rs:60:29 [INFO] [stdout] | [INFO] [stdout] 60 | let mut numerator = one.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `one` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-utils/src/number.rs:61:31 [INFO] [stdout] | [INFO] [stdout] 61 | let mut denominator = one.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `one` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | numerator = numerator * x; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `numerator *= x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | denominator = denominator * PreciseNumber::from(i + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `denominator *= PreciseNumber::from(i + 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:66:17 [INFO] [stdout] | [INFO] [stdout] 66 | negative_terms = negative_terms + numerator / denominator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `negative_terms += numerator / denominator` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | positive_terms = positive_terms + numerator / denominator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `positive_terms += numerator / denominator` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> tig-utils/src/number.rs:96:48 [INFO] [stdout] | [INFO] [stdout] 96 | Self::from_dec_str(s.as_str()).map_err(|e| serde::de::Error::custom(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `serde::de::Error::custom` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:116:6 [INFO] [stdout] | [INFO] [stdout] 116 | impl<'a> Add for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 116 - impl<'a> Add for &'a PreciseNumber { [INFO] [stdout] 116 + impl Add for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> tig-utils/src/number.rs:124:10 [INFO] [stdout] | [INFO] [stdout] 124 | impl<'a, 'b> Add<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 124 - impl<'a, 'b> Add<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] 124 + impl<'a> Add<&'a PreciseNumber> for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:148:6 [INFO] [stdout] | [INFO] [stdout] 148 | impl<'a> Sub for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 148 - impl<'a> Sub for &'a PreciseNumber { [INFO] [stdout] 148 + impl Sub for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> tig-utils/src/number.rs:156:10 [INFO] [stdout] | [INFO] [stdout] 156 | impl<'a, 'b> Sub<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 156 - impl<'a, 'b> Sub<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] 156 + impl<'a> Sub<&'a PreciseNumber> for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:180:6 [INFO] [stdout] | [INFO] [stdout] 180 | impl<'a> Mul for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 180 - impl<'a> Mul for &'a PreciseNumber { [INFO] [stdout] 180 + impl Mul for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> tig-utils/src/number.rs:188:10 [INFO] [stdout] | [INFO] [stdout] 188 | impl<'a, 'b> Mul<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 188 - impl<'a, 'b> Mul<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] 188 + impl<'a> Mul<&'a PreciseNumber> for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:218:6 [INFO] [stdout] | [INFO] [stdout] 218 | impl<'a> Div for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 218 - impl<'a> Div for &'a PreciseNumber { [INFO] [stdout] 218 + impl Div for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> tig-utils/src/number.rs:226:10 [INFO] [stdout] | [INFO] [stdout] 226 | impl<'a, 'b> Div<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 226 - impl<'a, 'b> Div<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] 226 + impl<'a> Div<&'a PreciseNumber> for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:300:6 [INFO] [stdout] | [INFO] [stdout] 300 | impl<'a> PartialEq for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 300 - impl<'a> PartialEq for &'a PreciseNumber { [INFO] [stdout] 300 + impl PartialEq for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> tig-utils/src/number.rs:306:1 [INFO] [stdout] | [INFO] [stdout] 306 | / impl PartialOrd for PreciseNumber { [INFO] [stdout] 307 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 308 | | self.0.partial_cmp(&other.0) [INFO] [stdout] 309 | | } [INFO] [stdout] 310 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 307 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 308 - self.0.partial_cmp(&other.0) [INFO] [stdout] 309 - } [INFO] [stdout] 307 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:318:6 [INFO] [stdout] | [INFO] [stdout] 318 | impl<'a> PartialOrd for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 318 - impl<'a> PartialOrd for &'a PreciseNumber { [INFO] [stdout] 318 + impl PartialOrd for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-utils/src/number.rs:359:35 [INFO] [stdout] | [INFO] [stdout] 359 | values.iter().map(|_| zero.clone()).collect() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | return on_front; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return on_front; [INFO] [stdout] 70 + on_front [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> tig-utils/src/frontiers.rs:6:30 [INFO] [stdout] | [INFO] [stdout] 6 | fn is_pareto_front_2d(costs: &Vec>) -> Vec { [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] 6 - fn is_pareto_front_2d(costs: &Vec>) -> Vec { [INFO] [stdout] 6 + fn is_pareto_front_2d(costs: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `unique_costs` after checking its variant with `is_some` [INFO] [stdout] --> tig-utils/src/frontiers.rs:84:29 [INFO] [stdout] | [INFO] [stdout] 83 | let on_front = if unique_costs.is_some() { [INFO] [stdout] | ------------------------- help: try: `if let Some() = unique_costs` [INFO] [stdout] 84 | is_pareto_front_2d(&unique_costs.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | return on_front; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return on_front; [INFO] [stdout] 93 + on_front [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | return (unique, indices); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 - return (unique, indices); [INFO] [stdout] 113 + (unique, indices) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> tig-utils/src/frontiers.rs:97:33 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn unique_with_indices(arr: &Vec>) -> (Vec>, Vec) { [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] help: change this to [INFO] [stdout] | [INFO] [stdout] 97 - pub fn unique_with_indices(arr: &Vec>) -> (Vec>, Vec) { [INFO] [stdout] 97 + pub fn unique_with_indices(arr: &[Vec]) -> (Vec>, Vec) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | return ParetoCompare::Equal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 - return ParetoCompare::Equal; [INFO] [stdout] 135 + ParetoCompare::Equal [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | return ParetoCompare::ADominatesB; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 137 - return ParetoCompare::ADominatesB; [INFO] [stdout] 137 + ParetoCompare::ADominatesB [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | return ParetoCompare::BDominatesA; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 139 - return ParetoCompare::BDominatesA; [INFO] [stdout] 139 + ParetoCompare::BDominatesA [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | return PointCompareFrontiers::Within; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 167 - return PointCompareFrontiers::Within; [INFO] [stdout] 167 + PointCompareFrontiers::Within [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | / return point [INFO] [stdout] 172 | | .iter() [INFO] [stdout] 173 | | .enumerate() [INFO] [stdout] 174 | | .map(|(i, value)| { [INFO] [stdout] ... | [INFO] [stdout] 177 | | }) [INFO] [stdout] 178 | | .collect(); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 171 ~ point [INFO] [stdout] 172 + .iter() [INFO] [stdout] 173 + .enumerate() [INFO] [stdout] 174 + .map(|(i, value)| { [INFO] [stdout] 175 + let offset = ((value - min_point[i] + 1) as f64) * multiplier; [INFO] [stdout] 176 + (min_point[i] + offset.ceil() as i32 - 1).clamp(min_point[i], max_point[i]) [INFO] [stdout] 177 + }) [INFO] [stdout] 178 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | / return pareto_frontier(&mirrored_frontier) [INFO] [stdout] 206 | | .iter() [INFO] [stdout] 207 | | .map(|d| d.iter().map(|x| -x).collect()) [INFO] [stdout] 208 | | .collect(); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 205 ~ pareto_frontier(&mirrored_frontier) [INFO] [stdout] 206 + .iter() [INFO] [stdout] 207 + .map(|d| d.iter().map(|x| -x).collect()) [INFO] [stdout] 208 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tig-utils/src/frontiers.rs:193:34 [INFO] [stdout] | [INFO] [stdout] 193 | .map(|point| scale_point(&point, min_point, max_point, multiplier)) [INFO] [stdout] | ^^^^^^ help: change this to: `point` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | / return frontiers [INFO] [stdout] 256 | | .iter() [INFO] [stdout] 257 | | .map(|d| { [INFO] [stdout] 258 | | d.iter() [INFO] [stdout] ... | [INFO] [stdout] 261 | | }) [INFO] [stdout] 262 | | .collect(); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 255 ~ frontiers [INFO] [stdout] 256 + .iter() [INFO] [stdout] 257 + .map(|d| { [INFO] [stdout] 258 + d.iter() [INFO] [stdout] 259 + .map(|x| x.iter().map(|y| -y).collect()) [INFO] [stdout] 260 + .collect::() [INFO] [stdout] 261 + }) [INFO] [stdout] 262 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> tig-utils/src/frontiers.rs:211:33 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn pareto_algorithm(points: &Vec>, only_one: bool) -> Vec> { [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] help: change this to [INFO] [stdout] | [INFO] [stdout] 211 - pub fn pareto_algorithm(points: &Vec>, only_one: bool) -> Vec> { [INFO] [stdout] 211 + pub fn pareto_algorithm(points: &[Vec], only_one: bool) -> Vec> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tig-utils/src/frontiers.rs:212:8 [INFO] [stdout] | [INFO] [stdout] 212 | if points.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `points.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:266:5 [INFO] [stdout] | [INFO] [stdout] 266 | return pareto_algorithm(frontier, true).first().unwrap().to_vec(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 266 - return pareto_algorithm(frontier, true).first().unwrap().to_vec(); [INFO] [stdout] 266 + pareto_algorithm(frontier, true).first().unwrap().to_vec() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:284:5 [INFO] [stdout] | [INFO] [stdout] 284 | return frontier; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 284 - return frontier; [INFO] [stdout] 284 + frontier [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tig-structs v0.1.0 (/opt/rustwide/workdir/tig-structs) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> tig-utils/tests/merkle_tree.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use serde_json; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tig-utils/src/eth.rs:55:24 [INFO] [stdout] | [INFO] [stdout] 55 | H160::from_str(&address)?, [INFO] [stdout] | ^^^^^^^^ help: change this to: `address` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> tig-utils/src/merkle_tree.rs:106:51 [INFO] [stdout] | [INFO] [stdout] 106 | .map(|(d, h)| format!("{:02x}{}", d, h.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> tig-utils/src/merkle_tree.rs:153:53 [INFO] [stdout] | [INFO] [stdout] 153 | let mut new_hashes = Vec::with_capacity((hashes.len() + 1) / 2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `hashes.len().div_ceil(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> tig-utils/src/merkle_tree.rs:188:48 [INFO] [stdout] | [INFO] [stdout] 188 | branch.push((depth, if idx % 2 == 0 { right } else { left }.clone())); [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `idx.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> tig-utils/src/merkle_tree.rs:226:16 [INFO] [stdout] | [INFO] [stdout] 226 | if idx % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `idx.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / construct_uint! { [INFO] [stdout] 11 | | pub struct U256(4); [INFO] [stdout] 12 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: this warning originates in the macro `$crate::construct_uint` which comes from the expansion of the macro `construct_uint` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-utils/src/number.rs:58:34 [INFO] [stdout] | [INFO] [stdout] 58 | let mut positive_terms = one.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `one` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-utils/src/number.rs:60:29 [INFO] [stdout] | [INFO] [stdout] 60 | let mut numerator = one.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `one` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-utils/src/number.rs:61:31 [INFO] [stdout] | [INFO] [stdout] 61 | let mut denominator = one.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `one` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | numerator = numerator * x; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `numerator *= x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | denominator = denominator * PreciseNumber::from(i + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `denominator *= PreciseNumber::from(i + 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:66:17 [INFO] [stdout] | [INFO] [stdout] 66 | negative_terms = negative_terms + numerator / denominator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `negative_terms += numerator / denominator` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tig-utils/src/number.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | positive_terms = positive_terms + numerator / denominator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `positive_terms += numerator / denominator` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> tig-utils/src/number.rs:96:48 [INFO] [stdout] | [INFO] [stdout] 96 | Self::from_dec_str(s.as_str()).map_err(|e| serde::de::Error::custom(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `serde::de::Error::custom` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:116:6 [INFO] [stdout] | [INFO] [stdout] 116 | impl<'a> Add for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 116 - impl<'a> Add for &'a PreciseNumber { [INFO] [stdout] 116 + impl Add for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> tig-utils/src/number.rs:124:10 [INFO] [stdout] | [INFO] [stdout] 124 | impl<'a, 'b> Add<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 124 - impl<'a, 'b> Add<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] 124 + impl<'a> Add<&'a PreciseNumber> for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:148:6 [INFO] [stdout] | [INFO] [stdout] 148 | impl<'a> Sub for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 148 - impl<'a> Sub for &'a PreciseNumber { [INFO] [stdout] 148 + impl Sub for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> tig-utils/src/number.rs:156:10 [INFO] [stdout] | [INFO] [stdout] 156 | impl<'a, 'b> Sub<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 156 - impl<'a, 'b> Sub<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] 156 + impl<'a> Sub<&'a PreciseNumber> for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:180:6 [INFO] [stdout] | [INFO] [stdout] 180 | impl<'a> Mul for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 180 - impl<'a> Mul for &'a PreciseNumber { [INFO] [stdout] 180 + impl Mul for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> tig-utils/src/number.rs:188:10 [INFO] [stdout] | [INFO] [stdout] 188 | impl<'a, 'b> Mul<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 188 - impl<'a, 'b> Mul<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] 188 + impl<'a> Mul<&'a PreciseNumber> for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:218:6 [INFO] [stdout] | [INFO] [stdout] 218 | impl<'a> Div for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 218 - impl<'a> Div for &'a PreciseNumber { [INFO] [stdout] 218 + impl Div for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> tig-utils/src/number.rs:226:10 [INFO] [stdout] | [INFO] [stdout] 226 | impl<'a, 'b> Div<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 226 - impl<'a, 'b> Div<&'a PreciseNumber> for &'b PreciseNumber { [INFO] [stdout] 226 + impl<'a> Div<&'a PreciseNumber> for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:300:6 [INFO] [stdout] | [INFO] [stdout] 300 | impl<'a> PartialEq for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 300 - impl<'a> PartialEq for &'a PreciseNumber { [INFO] [stdout] 300 + impl PartialEq for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> tig-utils/src/number.rs:306:1 [INFO] [stdout] | [INFO] [stdout] 306 | / impl PartialOrd for PreciseNumber { [INFO] [stdout] 307 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 308 | | self.0.partial_cmp(&other.0) [INFO] [stdout] 309 | | } [INFO] [stdout] 310 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 307 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 308 - self.0.partial_cmp(&other.0) [INFO] [stdout] 309 - } [INFO] [stdout] 307 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> tig-utils/src/number.rs:318:6 [INFO] [stdout] | [INFO] [stdout] 318 | impl<'a> PartialOrd for &'a PreciseNumber { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 318 - impl<'a> PartialOrd for &'a PreciseNumber { [INFO] [stdout] 318 + impl PartialOrd for &PreciseNumber { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-utils/src/number.rs:359:35 [INFO] [stdout] | [INFO] [stdout] 359 | values.iter().map(|_| zero.clone()).collect() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | return on_front; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return on_front; [INFO] [stdout] 70 + on_front [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> tig-utils/src/frontiers.rs:6:30 [INFO] [stdout] | [INFO] [stdout] 6 | fn is_pareto_front_2d(costs: &Vec>) -> Vec { [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] 6 - fn is_pareto_front_2d(costs: &Vec>) -> Vec { [INFO] [stdout] 6 + fn is_pareto_front_2d(costs: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `unique_costs` after checking its variant with `is_some` [INFO] [stdout] --> tig-utils/src/frontiers.rs:84:29 [INFO] [stdout] | [INFO] [stdout] 83 | let on_front = if unique_costs.is_some() { [INFO] [stdout] | ------------------------- help: try: `if let Some() = unique_costs` [INFO] [stdout] 84 | is_pareto_front_2d(&unique_costs.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | return on_front; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return on_front; [INFO] [stdout] 93 + on_front [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | return (unique, indices); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 - return (unique, indices); [INFO] [stdout] 113 + (unique, indices) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> tig-utils/src/frontiers.rs:97:33 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn unique_with_indices(arr: &Vec>) -> (Vec>, Vec) { [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] help: change this to [INFO] [stdout] | [INFO] [stdout] 97 - pub fn unique_with_indices(arr: &Vec>) -> (Vec>, Vec) { [INFO] [stdout] 97 + pub fn unique_with_indices(arr: &[Vec]) -> (Vec>, Vec) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | return ParetoCompare::Equal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 - return ParetoCompare::Equal; [INFO] [stdout] 135 + ParetoCompare::Equal [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | return ParetoCompare::ADominatesB; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 137 - return ParetoCompare::ADominatesB; [INFO] [stdout] 137 + ParetoCompare::ADominatesB [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | return ParetoCompare::BDominatesA; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 139 - return ParetoCompare::BDominatesA; [INFO] [stdout] 139 + ParetoCompare::BDominatesA [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | return PointCompareFrontiers::Within; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 167 - return PointCompareFrontiers::Within; [INFO] [stdout] 167 + PointCompareFrontiers::Within [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | / return point [INFO] [stdout] 172 | | .iter() [INFO] [stdout] 173 | | .enumerate() [INFO] [stdout] 174 | | .map(|(i, value)| { [INFO] [stdout] ... | [INFO] [stdout] 177 | | }) [INFO] [stdout] 178 | | .collect(); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 171 ~ point [INFO] [stdout] 172 + .iter() [INFO] [stdout] 173 + .enumerate() [INFO] [stdout] 174 + .map(|(i, value)| { [INFO] [stdout] 175 + let offset = ((value - min_point[i] + 1) as f64) * multiplier; [INFO] [stdout] 176 + (min_point[i] + offset.ceil() as i32 - 1).clamp(min_point[i], max_point[i]) [INFO] [stdout] 177 + }) [INFO] [stdout] 178 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | / return pareto_frontier(&mirrored_frontier) [INFO] [stdout] 206 | | .iter() [INFO] [stdout] 207 | | .map(|d| d.iter().map(|x| -x).collect()) [INFO] [stdout] 208 | | .collect(); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 205 ~ pareto_frontier(&mirrored_frontier) [INFO] [stdout] 206 + .iter() [INFO] [stdout] 207 + .map(|d| d.iter().map(|x| -x).collect()) [INFO] [stdout] 208 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tig-utils/src/frontiers.rs:193:34 [INFO] [stdout] | [INFO] [stdout] 193 | .map(|point| scale_point(&point, min_point, max_point, multiplier)) [INFO] [stdout] | ^^^^^^ help: change this to: `point` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | / return frontiers [INFO] [stdout] 256 | | .iter() [INFO] [stdout] 257 | | .map(|d| { [INFO] [stdout] 258 | | d.iter() [INFO] [stdout] ... | [INFO] [stdout] 261 | | }) [INFO] [stdout] 262 | | .collect(); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 255 ~ frontiers [INFO] [stdout] 256 + .iter() [INFO] [stdout] 257 + .map(|d| { [INFO] [stdout] 258 + d.iter() [INFO] [stdout] 259 + .map(|x| x.iter().map(|y| -y).collect()) [INFO] [stdout] 260 + .collect::() [INFO] [stdout] 261 + }) [INFO] [stdout] 262 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> tig-utils/src/frontiers.rs:211:33 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn pareto_algorithm(points: &Vec>, only_one: bool) -> Vec> { [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] help: change this to [INFO] [stdout] | [INFO] [stdout] 211 - pub fn pareto_algorithm(points: &Vec>, only_one: bool) -> Vec> { [INFO] [stdout] 211 + pub fn pareto_algorithm(points: &[Vec], only_one: bool) -> Vec> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tig-utils/src/frontiers.rs:212:8 [INFO] [stdout] | [INFO] [stdout] 212 | if points.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `points.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:266:5 [INFO] [stdout] | [INFO] [stdout] 266 | return pareto_algorithm(frontier, true).first().unwrap().to_vec(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 266 - return pareto_algorithm(frontier, true).first().unwrap().to_vec(); [INFO] [stdout] 266 + pareto_algorithm(frontier, true).first().unwrap().to_vec() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tig-utils/src/frontiers.rs:284:5 [INFO] [stdout] | [INFO] [stdout] 284 | return frontier; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 284 - return frontier; [INFO] [stdout] 284 + frontier [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tig-verifier v0.1.0 (/opt/rustwide/workdir/tig-verifier) [INFO] [stderr] Checking tig-protocol v0.1.0 (/opt/rustwide/workdir/tig-protocol) [INFO] [stderr] Checking tig-runtime v0.1.0 (/opt/rustwide/workdir/tig-runtime) [INFO] [stdout] warning: unused import: `tig_challenges::*` [INFO] [stdout] --> tig-verifier/src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use tig_challenges::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `dispatch_challenge` [INFO] [stdout] --> tig-verifier/src/main.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | macro_rules! dispatch_challenge { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tig_challenges::*` [INFO] [stdout] --> tig-runtime/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tig_challenges::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CPUArchitecture` and `OutputData` [INFO] [stdout] --> tig-runtime/src/main.rs:7:44 [INFO] [stdout] | [INFO] [stdout] 7 | use tig_structs::core::{BenchmarkSettings, CPUArchitecture, OutputData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `jsonify` [INFO] [stdout] --> tig-runtime/src/main.rs:8:28 [INFO] [stdout] | [INFO] [stdout] 8 | use tig_utils::{dejsonify, jsonify}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `dispatch_challenge` [INFO] [stdout] --> tig-runtime/src/main.rs:108:18 [INFO] [stdout] | [INFO] [stdout] 108 | macro_rules! dispatch_challenge { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tig_challenges::*` [INFO] [stdout] --> tig-runtime/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tig_challenges::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CPUArchitecture` and `OutputData` [INFO] [stdout] --> tig-runtime/src/main.rs:7:44 [INFO] [stdout] | [INFO] [stdout] 7 | use tig_structs::core::{BenchmarkSettings, CPUArchitecture, OutputData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `jsonify` [INFO] [stdout] --> tig-runtime/src/main.rs:8:28 [INFO] [stdout] | [INFO] [stdout] 8 | use tig_utils::{dejsonify, jsonify}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tig_challenges::*` [INFO] [stdout] --> tig-verifier/src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use tig_challenges::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> tig-verifier/src/main.rs:221:5 [INFO] [stdout] | [INFO] [stdout] 175 | / match settings.challenge_id.as_str() { [INFO] [stdout] 176 | | "c001" => { [INFO] [stdout] 177 | | #[cfg(not(feature = "c001"))] [INFO] [stdout] 178 | | panic!("tig-verifier was not compiled with '--features c001'"); [INFO] [stdout] ... | [INFO] [stdout] 218 | | _ => panic!("Unsupported challenge"), [INFO] [stdout] 219 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 220 | [INFO] [stdout] 221 | / if let Some(err_msg) = err_msg { [INFO] [stdout] 222 | | eprintln!("Verification error: {}", err_msg); [INFO] [stdout] 223 | | std::process::exit(1); [INFO] [stdout] 224 | | } [INFO] [stdout] | |_____^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `dispatch_challenge` [INFO] [stdout] --> tig-runtime/src/main.rs:108:18 [INFO] [stdout] | [INFO] [stdout] 108 | macro_rules! dispatch_challenge { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `dispatch_challenge` [INFO] [stdout] --> tig-verifier/src/main.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | macro_rules! dispatch_challenge { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | .is_some_and(|r| *r + 1 <= block_details.round) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `*r < block_details.round` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tig-verifier/src/main.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let mut err_msg = Option::::None; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `solution_path` [INFO] [stdout] --> tig-verifier/src/main.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | solution_path: String, [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solution_path` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ptx_path` [INFO] [stdout] --> tig-verifier/src/main.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | ptx_path: Option, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptx_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gpu_device` [INFO] [stdout] --> tig-verifier/src/main.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | gpu_device: Option, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gpu_device` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `verbose` [INFO] [stdout] --> tig-verifier/src/main.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | verbose: bool, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verbose` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `seed` [INFO] [stdout] --> tig-verifier/src/main.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | let seed = settings.calc_seed(&rand_hash, nonce); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_seed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_msg` [INFO] [stdout] --> tig-verifier/src/main.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let mut err_msg = Option::::None; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> tig-verifier/src/main.rs:221:5 [INFO] [stdout] | [INFO] [stdout] 175 | / match settings.challenge_id.as_str() { [INFO] [stdout] 176 | | "c001" => { [INFO] [stdout] 177 | | #[cfg(not(feature = "c001"))] [INFO] [stdout] 178 | | panic!("tig-verifier was not compiled with '--features c001'"); [INFO] [stdout] ... | [INFO] [stdout] 218 | | _ => panic!("Unsupported challenge"), [INFO] [stdout] 219 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 220 | [INFO] [stdout] 221 | / if let Some(err_msg) = err_msg { [INFO] [stdout] 222 | | eprintln!("Verification error: {}", err_msg); [INFO] [stdout] 223 | | std::process::exit(1); [INFO] [stdout] 224 | | } [INFO] [stdout] | |_____^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_solution` is never used [INFO] [stdout] --> tig-verifier/src/main.rs:245:4 [INFO] [stdout] | [INFO] [stdout] 245 | fn load_solution(solution: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ptx_path` [INFO] [stdout] --> tig-runtime/src/main.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | ptx_path: Option, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptx_path` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gpu_device` [INFO] [stdout] --> tig-runtime/src/main.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | gpu_device: Option, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gpu_device` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hyperparameters` [INFO] [stdout] --> tig-runtime/src/main.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | let hyperparameters = hyperparameters.map(|x| load_hyperparameters(&x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hyperparameters` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_file` [INFO] [stdout] --> tig-runtime/src/main.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let output_file = match output_folder { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tig-verifier/src/main.rs:256:36 [INFO] [stdout] | [INFO] [stdout] 256 | let d = fs::read_to_string(&solution).unwrap_or_else(|_| { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `solution` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tig-verifier/src/main.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let mut err_msg = Option::::None; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `solution_path` [INFO] [stdout] --> tig-verifier/src/main.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | solution_path: String, [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solution_path` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ptx_path` [INFO] [stdout] --> tig-verifier/src/main.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | ptx_path: Option, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptx_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gpu_device` [INFO] [stdout] --> tig-verifier/src/main.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | gpu_device: Option, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gpu_device` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `verbose` [INFO] [stdout] --> tig-verifier/src/main.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | verbose: bool, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verbose` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `seed` [INFO] [stdout] --> tig-verifier/src/main.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | let seed = settings.calc_seed(&rand_hash, nonce); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_seed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_msg` [INFO] [stdout] --> tig-verifier/src/main.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let mut err_msg = Option::::None; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_solution` is never used [INFO] [stdout] --> tig-verifier/src/main.rs:245:4 [INFO] [stdout] | [INFO] [stdout] 245 | fn load_solution(solution: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ptx_path` [INFO] [stdout] --> tig-runtime/src/main.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | ptx_path: Option, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptx_path` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gpu_device` [INFO] [stdout] --> tig-runtime/src/main.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | gpu_device: Option, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gpu_device` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hyperparameters` [INFO] [stdout] --> tig-runtime/src/main.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | let hyperparameters = hyperparameters.map(|x| load_hyperparameters(&x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hyperparameters` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_file` [INFO] [stdout] --> tig-runtime/src/main.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let output_file = match output_folder { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> tig-runtime/src/main.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | / pub fn compute_solution( [INFO] [stdout] 79 | | settings: String, [INFO] [stdout] 80 | | rand_hash: String, [INFO] [stdout] 81 | | nonce: u64, [INFO] [stdout] ... | [INFO] [stdout] 87 | | gpu_device: Option, [INFO] [stdout] 88 | | ) -> Result<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | .is_some_and(|r| *r + 1 <= block_details.round) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `*r < block_details.round` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tig-verifier/src/main.rs:256:36 [INFO] [stdout] | [INFO] [stdout] 256 | let d = fs::read_to_string(&solution).unwrap_or_else(|_| { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `solution` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> tig-runtime/src/main.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | / pub fn compute_solution( [INFO] [stdout] 79 | | settings: String, [INFO] [stdout] 80 | | rand_hash: String, [INFO] [stdout] 81 | | nonce: u64, [INFO] [stdout] ... | [INFO] [stdout] 87 | | gpu_device: Option, [INFO] [stdout] 88 | | ) -> Result<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:7:51 [INFO] [stdout] | [INFO] [stdout] 7 | async fn get_advance_state(&self, advance_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [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] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:13:57 [INFO] [stdout] | [INFO] [stdout] 13 | async fn get_benchmark_details(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:20:49 [INFO] [stdout] | [INFO] [stdout] 20 | async fn get_binary_details(&self, code_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:23:49 [INFO] [stdout] | [INFO] [stdout] 23 | async fn get_block_details(&self, block_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:24:55 [INFO] [stdout] | [INFO] [stdout] 24 | async fn get_challenge_state(&self, challenge_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:25:45 [INFO] [stdout] | [INFO] [stdout] 25 | async fn get_code_state(&self, code_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:33:51 [INFO] [stdout] | [INFO] [stdout] 33 | async fn get_player_details(&self, player_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:34:49 [INFO] [stdout] | [INFO] [stdout] 34 | async fn get_player_state(&self, player_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:37:20 [INFO] [stdout] | [INFO] [stdout] 37 | player_id: &String, [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 38 | block_id: &String, [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:53:58 [INFO] [stdout] | [INFO] [stdout] 53 | async fn get_precommit_settings(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:54:57 [INFO] [stdout] | [INFO] [stdout] 54 | async fn get_precommit_details(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:60:53 [INFO] [stdout] | [INFO] [stdout] 60 | async fn get_proof_details(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:61:51 [INFO] [stdout] | [INFO] [stdout] 61 | async fn get_proof_state(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/algorithms.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 20 | | .get_challenge_state(&challenge_id) [INFO] [stdout] 21 | | .await [INFO] [stdout] 22 | | .is_some_and(|s| s.round_active <= latest_block_details.round) [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 19 ~ if ctx [INFO] [stdout] 20 + .get_challenge_state(&challenge_id) [INFO] [stdout] 21 + .await.is_none_or(|s| s.round_active > latest_block_details.round) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/algorithms.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 28 | | .get_player_state(&player_id) [INFO] [stdout] 29 | | .await [INFO] [stdout] 30 | | .is_some_and(|s| s.available_fee_balance >= config.advances.submission_fee) [INFO] [stdout] | |___________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 27 ~ if ctx [INFO] [stdout] 28 + .get_player_state(&player_id) [INFO] [stdout] 29 + .await.is_none_or(|s| s.available_fee_balance < config.advances.submission_fee) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/algorithms.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 82 | | .get_player_state(&player_id) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | .is_some_and(|s| s.available_fee_balance >= config.codes.submission_fee) [INFO] [stdout] | |________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 81 ~ if ctx [INFO] [stdout] 82 + .get_player_state(&player_id) [INFO] [stdout] 83 + .await.is_none_or(|s| s.available_fee_balance < config.codes.submission_fee) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/algorithms.rs:248:29 [INFO] [stdout] | [INFO] [stdout] 248 | .adoption = adoption.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `adoption` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/benchmarks.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 35 | | .get_challenge_state(&settings.challenge_id) [INFO] [stdout] 36 | | .await [INFO] [stdout] 37 | | .is_some_and(|s| s.round_active <= block_details.round) [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 34 ~ if ctx [INFO] [stdout] 35 + .get_challenge_state(&settings.challenge_id) [INFO] [stdout] 36 + .await.is_none_or(|s| s.round_active > block_details.round) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/benchmarks.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 100 | | .get_player_state(&player_id) [INFO] [stdout] 101 | | .await [INFO] [stdout] 102 | | .is_some_and(|s| s.available_fee_balance >= submission_fee) [INFO] [stdout] | |___________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 99 ~ if ctx [INFO] [stdout] 100 + .get_player_state(&player_id) [INFO] [stdout] 101 + .await.is_none_or(|s| s.available_fee_balance < submission_fee) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:7:51 [INFO] [stdout] | [INFO] [stdout] 7 | async fn get_advance_state(&self, advance_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [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] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:13:57 [INFO] [stdout] | [INFO] [stdout] 13 | async fn get_benchmark_details(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:20:49 [INFO] [stdout] | [INFO] [stdout] 20 | async fn get_binary_details(&self, code_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:23:49 [INFO] [stdout] | [INFO] [stdout] 23 | async fn get_block_details(&self, block_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:24:55 [INFO] [stdout] | [INFO] [stdout] 24 | async fn get_challenge_state(&self, challenge_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:25:45 [INFO] [stdout] | [INFO] [stdout] 25 | async fn get_code_state(&self, code_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:33:51 [INFO] [stdout] | [INFO] [stdout] 33 | async fn get_player_details(&self, player_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:34:49 [INFO] [stdout] | [INFO] [stdout] 34 | async fn get_player_state(&self, player_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:37:20 [INFO] [stdout] | [INFO] [stdout] 37 | player_id: &String, [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 38 | block_id: &String, [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:53:58 [INFO] [stdout] | [INFO] [stdout] 53 | async fn get_precommit_settings(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:54:57 [INFO] [stdout] | [INFO] [stdout] 54 | async fn get_precommit_details(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:60:53 [INFO] [stdout] | [INFO] [stdout] 60 | async fn get_proof_details(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> tig-protocol/src/context.rs:61:51 [INFO] [stdout] | [INFO] [stdout] 61 | async fn get_proof_state(&self, benchmark_id: &String) -> Option; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/algorithms.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 20 | | .get_challenge_state(&challenge_id) [INFO] [stdout] 21 | | .await [INFO] [stdout] 22 | | .is_some_and(|s| s.round_active <= latest_block_details.round) [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 19 ~ if ctx [INFO] [stdout] 20 + .get_challenge_state(&challenge_id) [INFO] [stdout] 21 + .await.is_none_or(|s| s.round_active > latest_block_details.round) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/algorithms.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 28 | | .get_player_state(&player_id) [INFO] [stdout] 29 | | .await [INFO] [stdout] 30 | | .is_some_and(|s| s.available_fee_balance >= config.advances.submission_fee) [INFO] [stdout] | |___________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 27 ~ if ctx [INFO] [stdout] 28 + .get_player_state(&player_id) [INFO] [stdout] 29 + .await.is_none_or(|s| s.available_fee_balance < config.advances.submission_fee) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/algorithms.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 82 | | .get_player_state(&player_id) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | .is_some_and(|s| s.available_fee_balance >= config.codes.submission_fee) [INFO] [stdout] | |________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 81 ~ if ctx [INFO] [stdout] 82 + .get_player_state(&player_id) [INFO] [stdout] 83 + .await.is_none_or(|s| s.available_fee_balance < config.codes.submission_fee) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> tig-protocol/src/contracts/benchmarks.rs:216:28 [INFO] [stdout] | [INFO] [stdout] 216 | if num_nonces_per_bundle % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `num_nonces_per_bundle.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 68 | if phase_in_challenge_ids.len() > 0 && phase_in_end > block_details.height { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!phase_in_challenge_ids.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:116:17 [INFO] [stdout] | [INFO] [stdout] 116 | active_opow_block_data[player_id].cutoff.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `active_opow_block_data[player_id].cutoff` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:282:8 [INFO] [stdout] | [INFO] [stdout] 282 | if active_opow_ids.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `active_opow_ids.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:337:17 [INFO] [stdout] | [INFO] [stdout] 337 | one.clone() [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `one` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:361:17 [INFO] [stdout] | [INFO] [stdout] 361 | zero.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:401:17 [INFO] [stdout] | [INFO] [stdout] 401 | zero.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:406:17 [INFO] [stdout] | [INFO] [stdout] 406 | zero.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:435:13 [INFO] [stdout] | [INFO] [stdout] 435 | zero.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> tig-protocol/src/contracts/players.rs:93:37 [INFO] [stdout] | [INFO] [stdout] 93 | if delegatees.values().any(|&v| v < 0.0 || v > 1.0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `!(0.0..=1.0).contains(&v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/algorithms.rs:248:29 [INFO] [stdout] | [INFO] [stdout] 248 | .adoption = adoption.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `adoption` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/benchmarks.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 35 | | .get_challenge_state(&settings.challenge_id) [INFO] [stdout] 36 | | .await [INFO] [stdout] 37 | | .is_some_and(|s| s.round_active <= block_details.round) [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 34 ~ if ctx [INFO] [stdout] 35 + .get_challenge_state(&settings.challenge_id) [INFO] [stdout] 36 + .await.is_none_or(|s| s.round_active > block_details.round) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tig-protocol/src/contracts/benchmarks.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | if !ctx [INFO] [stdout] | ________^ [INFO] [stdout] 100 | | .get_player_state(&player_id) [INFO] [stdout] 101 | | .await [INFO] [stdout] 102 | | .is_some_and(|s| s.available_fee_balance >= submission_fee) [INFO] [stdout] | |___________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 99 ~ if ctx [INFO] [stdout] 100 + .get_player_state(&player_id) [INFO] [stdout] 101 + .await.is_none_or(|s| s.available_fee_balance < submission_fee) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / config [INFO] [stdout] 35 | | .rewards [INFO] [stdout] 36 | | .schedule [INFO] [stdout] 37 | | .iter() [INFO] [stdout] 38 | | .filter(|s| s.round_start <= block_details.round) [INFO] [stdout] 39 | | .last() [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 39 - .last() [INFO] [stdout] 39 + .next_back() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:48:64 [INFO] [stdout] | [INFO] [stdout] 48 | let scaled_reward = block_reward * PreciseNumber::from_f64(block_details.gamma_value.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `block_details.gamma_value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:56:34 [INFO] [stdout] | [INFO] [stdout] 56 | let mut total_codes_reward = zero.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:79:36 [INFO] [stdout] | [INFO] [stdout] 79 | .or_insert_with(|| zero.clone()) += code_data.reward; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:87:37 [INFO] [stdout] | [INFO] [stdout] 87 | let mut total_advances_reward = zero.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:114:36 [INFO] [stdout] | [INFO] [stdout] 114 | .or_insert_with(|| zero.clone()) += advance_data.reward; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:120:41 [INFO] [stdout] | [INFO] [stdout] 120 | let mut total_benchmarkers_reward = zero.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:121:39 [INFO] [stdout] | [INFO] [stdout] 121 | let mut total_delegators_reward = zero.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:132:21 [INFO] [stdout] | [INFO] [stdout] 132 | / active_players_state[delegatee] [INFO] [stdout] 133 | | .reward_share [INFO] [stdout] 134 | | .as_ref() [INFO] [stdout] 135 | | .map_or(config.deposits.default_reward_share, |x| x.value) [INFO] [stdout] 136 | | .clone(), [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] help: try removing the `clone` call [INFO] [stdout] | [INFO] [stdout] 132 ~ active_players_state[delegatee] [INFO] [stdout] 133 + .reward_share [INFO] [stdout] 134 + .as_ref() [INFO] [stdout] 135 ~ .map_or(config.deposits.default_reward_share, |x| x.value), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:152:55 [INFO] [stdout] | [INFO] [stdout] 152 | opow_data.coinbase.insert(output.clone(), reward.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `reward` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:158:36 [INFO] [stdout] | [INFO] [stdout] 158 | .or_insert_with(|| zero.clone()) += reward; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:174:36 [INFO] [stdout] | [INFO] [stdout] 174 | .or_insert_with(|| zero.clone()) += reward; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> tig-protocol/src/contracts/benchmarks.rs:216:28 [INFO] [stdout] | [INFO] [stdout] 216 | if num_nonces_per_bundle % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `num_nonces_per_bundle.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 68 | if phase_in_challenge_ids.len() > 0 && phase_in_end > block_details.height { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!phase_in_challenge_ids.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:116:17 [INFO] [stdout] | [INFO] [stdout] 116 | active_opow_block_data[player_id].cutoff.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `active_opow_block_data[player_id].cutoff` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:282:8 [INFO] [stdout] | [INFO] [stdout] 282 | if active_opow_ids.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `active_opow_ids.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:337:17 [INFO] [stdout] | [INFO] [stdout] 337 | one.clone() [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `one` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:361:17 [INFO] [stdout] | [INFO] [stdout] 361 | zero.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:401:17 [INFO] [stdout] | [INFO] [stdout] 401 | zero.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:406:17 [INFO] [stdout] | [INFO] [stdout] 406 | zero.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/opow.rs:435:13 [INFO] [stdout] | [INFO] [stdout] 435 | zero.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> tig-protocol/src/contracts/players.rs:93:37 [INFO] [stdout] | [INFO] [stdout] 93 | if delegatees.values().any(|&v| v < 0.0 || v > 1.0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `!(0.0..=1.0).contains(&v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / config [INFO] [stdout] 35 | | .rewards [INFO] [stdout] 36 | | .schedule [INFO] [stdout] 37 | | .iter() [INFO] [stdout] 38 | | .filter(|s| s.round_start <= block_details.round) [INFO] [stdout] 39 | | .last() [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 39 - .last() [INFO] [stdout] 39 + .next_back() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:48:64 [INFO] [stdout] | [INFO] [stdout] 48 | let scaled_reward = block_reward * PreciseNumber::from_f64(block_details.gamma_value.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `block_details.gamma_value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:56:34 [INFO] [stdout] | [INFO] [stdout] 56 | let mut total_codes_reward = zero.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:79:36 [INFO] [stdout] | [INFO] [stdout] 79 | .or_insert_with(|| zero.clone()) += code_data.reward; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:87:37 [INFO] [stdout] | [INFO] [stdout] 87 | let mut total_advances_reward = zero.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:114:36 [INFO] [stdout] | [INFO] [stdout] 114 | .or_insert_with(|| zero.clone()) += advance_data.reward; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:120:41 [INFO] [stdout] | [INFO] [stdout] 120 | let mut total_benchmarkers_reward = zero.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:121:39 [INFO] [stdout] | [INFO] [stdout] 121 | let mut total_delegators_reward = zero.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:132:21 [INFO] [stdout] | [INFO] [stdout] 132 | / active_players_state[delegatee] [INFO] [stdout] 133 | | .reward_share [INFO] [stdout] 134 | | .as_ref() [INFO] [stdout] 135 | | .map_or(config.deposits.default_reward_share, |x| x.value) [INFO] [stdout] 136 | | .clone(), [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] help: try removing the `clone` call [INFO] [stdout] | [INFO] [stdout] 132 ~ active_players_state[delegatee] [INFO] [stdout] 133 + .reward_share [INFO] [stdout] 134 + .as_ref() [INFO] [stdout] 135 ~ .map_or(config.deposits.default_reward_share, |x| x.value), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:152:55 [INFO] [stdout] | [INFO] [stdout] 152 | opow_data.coinbase.insert(output.clone(), reward.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `reward` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:158:36 [INFO] [stdout] | [INFO] [stdout] 158 | .or_insert_with(|| zero.clone()) += reward; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PreciseNumber` which implements the `Copy` trait [INFO] [stdout] --> tig-protocol/src/contracts/rewards.rs:174:36 [INFO] [stdout] | [INFO] [stdout] 174 | .or_insert_with(|| zero.clone()) += reward; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `zero` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 43s [INFO] running `Command { std: "docker" "inspect" "0f5f8b1bbe60e61a51314fb59dde018541622f3ace98e73334266f8e47e6a790", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0f5f8b1bbe60e61a51314fb59dde018541622f3ace98e73334266f8e47e6a790", kill_on_drop: false }` [INFO] [stdout] 0f5f8b1bbe60e61a51314fb59dde018541622f3ace98e73334266f8e47e6a790