[INFO] cloning repository https://github.com/shoheigorila/cpmmx [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shoheigorila/cpmmx" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshoheigorila%2Fcpmmx", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshoheigorila%2Fcpmmx'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 676a3530fe457c0c248d6496d42fa0529fa41ebc [INFO] linting shoheigorila/cpmmx against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshoheigorila%2Fcpmmx" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/shoheigorila/cpmmx [INFO] finished tweaking git repo https://github.com/shoheigorila/cpmmx [INFO] tweaked toml for git repo https://github.com/shoheigorila/cpmmx written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/shoheigorila/cpmmx 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/shoheigorila/cpmmx 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 crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded keccak-asm v0.1.5 [INFO] [stderr] Downloaded wasmtimer v0.4.3 [INFO] [stderr] Downloaded alloy-rpc-types-anvil v0.8.3 [INFO] [stderr] Downloaded alloy-transport-ws v0.8.3 [INFO] [stderr] Downloaded alloy-json-rpc v0.8.3 [INFO] [stderr] Downloaded doctest-file v1.0.0 [INFO] [stderr] Downloaded alloy-eip7702 v0.4.2 [INFO] [stderr] Downloaded alloy-transport v0.8.3 [INFO] [stderr] Downloaded alloy-rpc-types v0.8.3 [INFO] [stderr] Downloaded alloy-node-bindings v0.8.3 [INFO] [stderr] Downloaded alloy-contract v0.8.3 [INFO] [stderr] Downloaded clap v4.5.55 [INFO] [stderr] Downloaded alloy-rpc-types-trace v0.8.3 [INFO] [stderr] Downloaded alloy-rpc-types-engine v0.8.3 [INFO] [stderr] Downloaded alloy-provider v0.8.3 [INFO] [stderr] Downloaded alloy-rpc-types-eth v0.8.3 [INFO] [stderr] Downloaded alloy-consensus v0.8.3 [INFO] [stderr] Downloaded clap_builder v4.5.55 [INFO] [stderr] Downloaded interprocess v2.2.3 [INFO] [stderr] Downloaded alloy-network-primitives v0.8.3 [INFO] [stderr] Downloaded zerocopy-derive v0.8.35 [INFO] [stderr] Downloaded zerocopy v0.8.35 [INFO] [stderr] Downloaded alloy-rpc-client v0.8.3 [INFO] [stderr] Downloaded alloy-trie v0.7.9 [INFO] [stderr] Downloaded alloy-serde v0.8.3 [INFO] [stderr] Downloaded alloy-genesis v0.8.3 [INFO] [stderr] Downloaded sha3-asm v0.1.5 [INFO] [stderr] Downloaded alloy-network v0.8.3 [INFO] [stderr] Downloaded recvmsg v1.0.0 [INFO] [stderr] Downloaded alloy-pubsub v0.8.3 [INFO] [stderr] Downloaded nybbles v0.3.4 [INFO] [stderr] Downloaded alloy-signer v0.8.3 [INFO] [stderr] Downloaded alloy-signer-local v0.8.3 [INFO] [stderr] Downloaded alloy-transport-http v0.8.3 [INFO] [stderr] Downloaded alloy-transport-ipc v0.8.3 [INFO] [stderr] Downloaded alloy v0.8.3 [INFO] [stderr] Downloaded alloy-rpc-types-any v0.8.3 [INFO] [stderr] Downloaded alloy-eips v0.8.3 [INFO] [stderr] Downloaded alloy-consensus-any v0.8.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4dbc5835ea3691a603c34e6e6b7230b85c19f6f2e81d8fcbca67f5faa2d712c1 [INFO] running `Command { std: "docker" "start" "-a" "4dbc5835ea3691a603c34e6e6b7230b85c19f6f2e81d8fcbca67f5faa2d712c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4dbc5835ea3691a603c34e6e6b7230b85c19f6f2e81d8fcbca67f5faa2d712c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4dbc5835ea3691a603c34e6e6b7230b85c19f6f2e81d8fcbca67f5faa2d712c1", kill_on_drop: false }` [INFO] [stdout] 4dbc5835ea3691a603c34e6e6b7230b85c19f6f2e81d8fcbca67f5faa2d712c1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 01e3227cc5290d849961e5033195a18de481569b5a80d4e027f610e52d9033ec [INFO] running `Command { std: "docker" "start" "-a" "01e3227cc5290d849961e5033195a18de481569b5a80d4e027f610e52d9033ec", kill_on_drop: false }` [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling ruint-macro v1.2.1 [INFO] [stderr] Compiling alloy-rlp-derive v0.3.12 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Checking const-hex v1.17.0 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling zmij v1.0.17 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Checking ff v0.13.1 [INFO] [stderr] Compiling syn-solidity v0.8.26 [INFO] [stderr] Checking socket2 v0.6.2 [INFO] [stderr] Checking group v0.13.0 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Compiling macro-string v0.1.4 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling derive_more-impl v1.0.0 [INFO] [stderr] Compiling blst v0.3.16 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking der v0.7.10 [INFO] [stderr] Checking bytes v1.11.0 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Checking threadpool v1.8.1 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking nybbles v0.3.4 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling c-kzg v1.0.3 [INFO] [stderr] Compiling zerocopy v0.8.35 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking rustls-pki-types v1.14.0 [INFO] [stderr] Checking alloy-rlp v0.3.12 [INFO] [stderr] Checking http v1.4.0 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking crypto-bigint v0.5.5 [INFO] [stderr] Checking ruint v1.17.2 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking sec1 v0.7.3 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Compiling auto_impl v1.3.0 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking rfc6979 v0.4.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking alloy-sol-type-parser v0.8.26 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking futures-utils-wasm v0.1.0 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking elliptic-curve v0.13.8 [INFO] [stderr] Checking webpki-roots v1.0.5 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking bimap v0.6.3 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking ecdsa v0.16.9 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling doctest-file v1.0.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling num_enum_derive v0.7.5 [INFO] [stderr] Checking tempfile v3.24.0 [INFO] [stderr] Checking k256 v0.13.4 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking hashbrown v0.13.2 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking lru v0.12.5 [INFO] [stderr] Checking derive_more v1.0.0 [INFO] [stderr] Compiling parking_lot_core v0.8.6 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking fs2 v0.4.3 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking num_enum v0.7.5 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking clap_lex v0.7.7 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking clap_builder v4.5.55 [INFO] [stderr] Checking parking_lot v0.11.2 [INFO] [stderr] Checking schnellru v0.2.4 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking sled v0.34.7 [INFO] [stderr] Checking alloy-primitives v0.8.26 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking alloy-json-abi v0.8.26 [INFO] [stderr] Checking alloy-serde v0.8.3 [INFO] [stderr] Checking alloy-trie v0.7.9 [INFO] [stderr] Checking alloy-eip2930 v0.1.0 [INFO] [stderr] Checking alloy-eip7702 v0.4.2 [INFO] [stderr] Checking alloy-signer v0.8.3 [INFO] [stderr] Checking alloy-chains v0.1.69 [INFO] [stderr] Checking alloy-eips v0.8.3 [INFO] [stderr] Checking clap v4.5.55 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking interprocess v2.2.3 [INFO] [stderr] Checking alloy-genesis v0.8.3 [INFO] [stderr] Checking alloy-node-bindings v0.8.3 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Checking tokio-stream v0.1.18 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking rustls-webpki v0.103.9 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking alloy-consensus v0.8.3 [INFO] [stderr] Compiling alloy-sol-macro-input v0.8.26 [INFO] [stderr] Compiling alloy-sol-macro-expander v0.8.26 [INFO] [stderr] Checking alloy-network-primitives v0.8.3 [INFO] [stderr] Checking alloy-consensus-any v0.8.3 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Compiling alloy-sol-macro v0.8.26 [INFO] [stderr] Checking tungstenite v0.24.0 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking hyper-util v0.1.19 [INFO] [stderr] Checking alloy-sol-types v0.8.26 [INFO] [stderr] Checking tokio-tungstenite v0.24.0 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.28 [INFO] [stderr] Checking alloy-json-rpc v0.8.3 [INFO] [stderr] Checking alloy-rpc-types-eth v0.8.3 [INFO] [stderr] Checking alloy-dyn-abi v0.8.26 [INFO] [stderr] Checking alloy-transport v0.8.3 [INFO] [stderr] Checking alloy-core v0.8.26 [INFO] [stderr] Checking alloy-pubsub v0.8.3 [INFO] [stderr] Checking alloy-transport-http v0.8.3 [INFO] [stderr] Checking alloy-transport-ws v0.8.3 [INFO] [stderr] Checking alloy-transport-ipc v0.8.3 [INFO] [stderr] Checking alloy-rpc-client v0.8.3 [INFO] [stderr] Checking alloy-rpc-types-any v0.8.3 [INFO] [stderr] Checking alloy-rpc-types-trace v0.8.3 [INFO] [stderr] Checking alloy-rpc-types-anvil v0.8.3 [INFO] [stderr] Checking alloy-network v0.8.3 [INFO] [stderr] Checking alloy-signer-local v0.8.3 [INFO] [stderr] Checking alloy-provider v0.8.3 [INFO] [stderr] Checking alloy-rpc-types v0.8.3 [INFO] [stderr] Checking alloy-contract v0.8.3 [INFO] [stderr] Checking alloy v0.8.3 [INFO] [stderr] Checking cpmmx-core v0.1.0 (/opt/rustwide/workdir/crates/cpmmx-core) [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/cpmmx-core/src/types.rs:151:1 [INFO] [stdout] | [INFO] [stdout] 151 | / pub enum ExecutionResult { [INFO] [stdout] 152 | | /// Execution succeeded [INFO] [stdout] 153 | | / Success { [INFO] [stdout] 154 | | | /// Snapshot before execution [INFO] [stdout] 155 | | | before: Snapshot, [INFO] [stdout] 156 | | | /// Snapshot after execution [INFO] [stdout] ... | | [INFO] [stdout] 159 | | | gas_used: u64, [INFO] [stdout] 160 | | | }, [INFO] [stdout] | | |_____- the largest variant contains at least 280 bytes [INFO] [stdout] 161 | | /// Execution reverted [INFO] [stdout] 162 | | / Reverted { [INFO] [stdout] 163 | | | /// Revert reason if available [INFO] [stdout] 164 | | | reason: Option, [INFO] [stdout] 165 | | | }, [INFO] [stdout] | | |_____- the second-largest variant contains at least 24 bytes [INFO] [stdout] ... | [INFO] [stdout] 170 | | }, [INFO] [stdout] 171 | | } [INFO] [stdout] | |___^ the entire enum is at least 288 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 157 - after: Snapshot, [INFO] [stdout] 157 + after: Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/cpmmx-core/src/types.rs:151:1 [INFO] [stdout] | [INFO] [stdout] 151 | / pub enum ExecutionResult { [INFO] [stdout] 152 | | /// Execution succeeded [INFO] [stdout] 153 | | / Success { [INFO] [stdout] 154 | | | /// Snapshot before execution [INFO] [stdout] 155 | | | before: Snapshot, [INFO] [stdout] 156 | | | /// Snapshot after execution [INFO] [stdout] ... | | [INFO] [stdout] 159 | | | gas_used: u64, [INFO] [stdout] 160 | | | }, [INFO] [stdout] | | |_____- the largest variant contains at least 280 bytes [INFO] [stdout] 161 | | /// Execution reverted [INFO] [stdout] 162 | | / Reverted { [INFO] [stdout] 163 | | | /// Revert reason if available [INFO] [stdout] 164 | | | reason: Option, [INFO] [stdout] 165 | | | }, [INFO] [stdout] | | |_____- the second-largest variant contains at least 24 bytes [INFO] [stdout] ... | [INFO] [stdout] 170 | | }, [INFO] [stdout] 171 | | } [INFO] [stdout] | |___^ the entire enum is at least 288 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 157 - after: Snapshot, [INFO] [stdout] 157 + after: Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking cpmmx-rpc v0.1.0 (/opt/rustwide/workdir/crates/cpmmx-rpc) [INFO] [stderr] Checking cpmmx-gen v0.1.0 (/opt/rustwide/workdir/crates/cpmmx-gen) [INFO] [stderr] Checking cpmmx-report v0.1.0 (/opt/rustwide/workdir/crates/cpmmx-report) [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> crates/cpmmx-report/src/findings.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | / pub fn new( [INFO] [stdout] 79 | | chain: ChainId, [INFO] [stdout] 80 | | pair: Address, [INFO] [stdout] 81 | | y_token: Address, [INFO] [stdout] ... | [INFO] [stdout] 89 | | after: Snapshot, [INFO] [stdout] 90 | | ) -> Self { [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: `format!` in `format!` args [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:35:22 [INFO] [stdout] | [INFO] [stdout] 35 | let script = format!( [INFO] [stdout] | ______________________^ [INFO] [stdout] 36 | | r#"// SPDX-License-Identifier: MIT [INFO] [stdout] 37 | | pragma solidity ^0.8.19; [INFO] [stdout] ... | [INFO] [stdout] 132 | | template_code = template_code, [INFO] [stdout] 133 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | / format!( [INFO] [stdout] 144 | | r#" // CT-1: Self-transfer [INFO] [stdout] 145 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 146 | | IERC20(Y_TOKEN).transfer(attacker, bal);"# [INFO] [stdout] 147 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 143 ~ r#" // CT-1: Self-transfer [INFO] [stdout] 144 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 145 + IERC20(Y_TOKEN).transfer(attacker, bal);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:151:17 [INFO] [stdout] | [INFO] [stdout] 151 | / format!( [INFO] [stdout] 152 | | r#" // CT-2: Skim to this [INFO] [stdout] 153 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 154 | | IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 155 | | IUniswapV2Pair(PAIR).skim(attacker);"# [INFO] [stdout] 156 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 151 ~ r#" // CT-2: Skim to this [INFO] [stdout] 152 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 153 + IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 154 + IUniswapV2Pair(PAIR).skim(attacker);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:160:17 [INFO] [stdout] | [INFO] [stdout] 160 | / format!( [INFO] [stdout] 161 | | r#" // CT-3: Skim chain [INFO] [stdout] 162 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 163 | | IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 164 | | IUniswapV2Pair(PAIR).skim(PAIR); [INFO] [stdout] 165 | | IUniswapV2Pair(PAIR).skim(attacker);"# [INFO] [stdout] 166 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 160 ~ r#" // CT-3: Skim chain [INFO] [stdout] 161 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 162 + IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 163 + IUniswapV2Pair(PAIR).skim(PAIR); [INFO] [stdout] 164 + IUniswapV2Pair(PAIR).skim(attacker);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:170:17 [INFO] [stdout] | [INFO] [stdout] 170 | / format!( [INFO] [stdout] 171 | | r#" // CT-4: Skim to DEX [INFO] [stdout] 172 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 173 | | IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 174 | | IUniswapV2Pair(PAIR).skim(PAIR);"# [INFO] [stdout] 175 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 170 ~ r#" // CT-4: Skim to DEX [INFO] [stdout] 171 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 172 + IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 173 + IUniswapV2Pair(PAIR).skim(PAIR);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:179:17 [INFO] [stdout] | [INFO] [stdout] 179 | / format!( [INFO] [stdout] 180 | | r#" // B-1: Burn amount [INFO] [stdout] 181 | | // Note: Requires Y_TOKEN to implement burn() [INFO] [stdout] 182 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 183 | | // IBurnable(Y_TOKEN).burn(bal);"# [INFO] [stdout] 184 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 179 ~ r#" // B-1: Burn amount [INFO] [stdout] 180 + // Note: Requires Y_TOKEN to implement burn() [INFO] [stdout] 181 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 182 + // IBurnable(Y_TOKEN).burn(bal);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:188:17 [INFO] [stdout] | [INFO] [stdout] 188 | / format!( [INFO] [stdout] 189 | | r#" // B-2: Burn DEX [INFO] [stdout] 190 | | // Note: Requires Y_TOKEN to implement burnFrom() and approval [INFO] [stdout] 191 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(PAIR); [INFO] [stdout] 192 | | // IBurnable(Y_TOKEN).burnFrom(PAIR, bal);"# [INFO] [stdout] 193 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 188 ~ r#" // B-2: Burn DEX [INFO] [stdout] 189 + // Note: Requires Y_TOKEN to implement burnFrom() and approval [INFO] [stdout] 190 + uint256 bal = IERC20(Y_TOKEN).balanceOf(PAIR); [INFO] [stdout] 191 + // IBurnable(Y_TOKEN).burnFrom(PAIR, bal);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> crates/cpmmx-report/src/findings.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | / pub fn new( [INFO] [stdout] 79 | | chain: ChainId, [INFO] [stdout] 80 | | pair: Address, [INFO] [stdout] 81 | | y_token: Address, [INFO] [stdout] ... | [INFO] [stdout] 89 | | after: Snapshot, [INFO] [stdout] 90 | | ) -> Self { [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: `format!` in `format!` args [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:35:22 [INFO] [stdout] | [INFO] [stdout] 35 | let script = format!( [INFO] [stdout] | ______________________^ [INFO] [stdout] 36 | | r#"// SPDX-License-Identifier: MIT [INFO] [stdout] 37 | | pragma solidity ^0.8.19; [INFO] [stdout] ... | [INFO] [stdout] 132 | | template_code = template_code, [INFO] [stdout] 133 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | / format!( [INFO] [stdout] 144 | | r#" // CT-1: Self-transfer [INFO] [stdout] 145 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 146 | | IERC20(Y_TOKEN).transfer(attacker, bal);"# [INFO] [stdout] 147 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 143 ~ r#" // CT-1: Self-transfer [INFO] [stdout] 144 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 145 + IERC20(Y_TOKEN).transfer(attacker, bal);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:151:17 [INFO] [stdout] | [INFO] [stdout] 151 | / format!( [INFO] [stdout] 152 | | r#" // CT-2: Skim to this [INFO] [stdout] 153 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 154 | | IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 155 | | IUniswapV2Pair(PAIR).skim(attacker);"# [INFO] [stdout] 156 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 151 ~ r#" // CT-2: Skim to this [INFO] [stdout] 152 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 153 + IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 154 + IUniswapV2Pair(PAIR).skim(attacker);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:160:17 [INFO] [stdout] | [INFO] [stdout] 160 | / format!( [INFO] [stdout] 161 | | r#" // CT-3: Skim chain [INFO] [stdout] 162 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 163 | | IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 164 | | IUniswapV2Pair(PAIR).skim(PAIR); [INFO] [stdout] 165 | | IUniswapV2Pair(PAIR).skim(attacker);"# [INFO] [stdout] 166 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 160 ~ r#" // CT-3: Skim chain [INFO] [stdout] 161 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 162 + IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 163 + IUniswapV2Pair(PAIR).skim(PAIR); [INFO] [stdout] 164 + IUniswapV2Pair(PAIR).skim(attacker);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:170:17 [INFO] [stdout] | [INFO] [stdout] 170 | / format!( [INFO] [stdout] 171 | | r#" // CT-4: Skim to DEX [INFO] [stdout] 172 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 173 | | IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 174 | | IUniswapV2Pair(PAIR).skim(PAIR);"# [INFO] [stdout] 175 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 170 ~ r#" // CT-4: Skim to DEX [INFO] [stdout] 171 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 172 + IERC20(Y_TOKEN).transfer(PAIR, bal); [INFO] [stdout] 173 + IUniswapV2Pair(PAIR).skim(PAIR);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:179:17 [INFO] [stdout] | [INFO] [stdout] 179 | / format!( [INFO] [stdout] 180 | | r#" // B-1: Burn amount [INFO] [stdout] 181 | | // Note: Requires Y_TOKEN to implement burn() [INFO] [stdout] 182 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 183 | | // IBurnable(Y_TOKEN).burn(bal);"# [INFO] [stdout] 184 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 179 ~ r#" // B-1: Burn amount [INFO] [stdout] 180 + // Note: Requires Y_TOKEN to implement burn() [INFO] [stdout] 181 + uint256 bal = IERC20(Y_TOKEN).balanceOf(attacker); [INFO] [stdout] 182 + // IBurnable(Y_TOKEN).burn(bal);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/cpmmx-report/src/repro.rs:188:17 [INFO] [stdout] | [INFO] [stdout] 188 | / format!( [INFO] [stdout] 189 | | r#" // B-2: Burn DEX [INFO] [stdout] 190 | | // Note: Requires Y_TOKEN to implement burnFrom() and approval [INFO] [stdout] 191 | | uint256 bal = IERC20(Y_TOKEN).balanceOf(PAIR); [INFO] [stdout] 192 | | // IBurnable(Y_TOKEN).burnFrom(PAIR, bal);"# [INFO] [stdout] 193 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 188 ~ r#" // B-2: Burn DEX [INFO] [stdout] 189 + // Note: Requires Y_TOKEN to implement burnFrom() and approval [INFO] [stdout] 190 + uint256 bal = IERC20(Y_TOKEN).balanceOf(PAIR); [INFO] [stdout] 191 + // IBurnable(Y_TOKEN).burnFrom(PAIR, bal);"#.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking cpmmx-harness v0.1.0 (/opt/rustwide/workdir/crates/cpmmx-harness) [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/cpmmx-harness/src/deploy.rs:78:35 [INFO] [stdout] | [INFO] [stdout] 78 | let nonce_len = if nonce == 0 { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 79 | | 1 [INFO] [stdout] 80 | | } else if nonce < 128 { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/cpmmx-harness/src/deploy.rs:80:27 [INFO] [stdout] | [INFO] [stdout] 80 | } else if nonce < 128 { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 81 | | 1 [INFO] [stdout] 82 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/cpmmx-harness/src/deploy.rs:78:35 [INFO] [stdout] | [INFO] [stdout] 78 | let nonce_len = if nonce == 0 { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 79 | | 1 [INFO] [stdout] 80 | | } else if nonce < 128 { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/cpmmx-harness/src/deploy.rs:80:27 [INFO] [stdout] | [INFO] [stdout] 80 | } else if nonce < 128 { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 81 | | 1 [INFO] [stdout] 82 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking cpmmx-runner v0.1.0 (/opt/rustwide/workdir/crates/cpmmx-runner) [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/cpmmx-runner/src/executor.rs:117:18 [INFO] [stdout] | [INFO] [stdout] 117 | .map(|op| CallData::from_operation(op)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `CallData::from_operation` [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: method `next` can be confused for the standard trait method `std::iter::Iterator::next` [INFO] [stdout] --> crates/cpmmx-runner/src/schedule.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn next(&mut self) -> Option { [INFO] [stdout] 37 | | if self.current_index < self.iterations.len() { [INFO] [stdout] 38 | | let count = self.iterations[self.current_index]; [INFO] [stdout] 39 | | self.current_index += 1; [INFO] [stdout] ... | [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::iter::Iterator` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/cpmmx-runner/src/stress.rs:103:18 [INFO] [stdout] | [INFO] [stdout] 103 | .map(|op| CallData::from_operation(op)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `CallData::from_operation` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/cpmmx-runner/src/stress.rs:225:18 [INFO] [stdout] | [INFO] [stdout] 225 | .map(|op| CallData::from_operation(op)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `CallData::from_operation` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/cpmmx-runner/src/executor.rs:117:18 [INFO] [stdout] | [INFO] [stdout] 117 | .map(|op| CallData::from_operation(op)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `CallData::from_operation` [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: method `next` can be confused for the standard trait method `std::iter::Iterator::next` [INFO] [stdout] --> crates/cpmmx-runner/src/schedule.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn next(&mut self) -> Option { [INFO] [stdout] 37 | | if self.current_index < self.iterations.len() { [INFO] [stdout] 38 | | let count = self.iterations[self.current_index]; [INFO] [stdout] 39 | | self.current_index += 1; [INFO] [stdout] ... | [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::iter::Iterator` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/cpmmx-runner/src/stress.rs:103:18 [INFO] [stdout] | [INFO] [stdout] 103 | .map(|op| CallData::from_operation(op)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `CallData::from_operation` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/cpmmx-runner/src/stress.rs:225:18 [INFO] [stdout] | [INFO] [stdout] 225 | .map(|op| CallData::from_operation(op)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `CallData::from_operation` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking cpmmx-cli v0.1.0 (/opt/rustwide/workdir/crates/cpmmx-cli) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.25s [INFO] running `Command { std: "docker" "inspect" "01e3227cc5290d849961e5033195a18de481569b5a80d4e027f610e52d9033ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01e3227cc5290d849961e5033195a18de481569b5a80d4e027f610e52d9033ec", kill_on_drop: false }` [INFO] [stdout] 01e3227cc5290d849961e5033195a18de481569b5a80d4e027f610e52d9033ec