[INFO] cloning repository https://github.com/perun-network/perun-ckb-contract [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/perun-network/perun-ckb-contract" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fperun-network%2Fperun-ckb-contract", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fperun-network%2Fperun-ckb-contract'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 079597bbb89d891409da6675bc8ede2e8249e77d [INFO] linting perun-network/perun-ckb-contract against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fperun-network%2Fperun-ckb-contract" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/perun-network/perun-ckb-contract [INFO] finished tweaking git repo https://github.com/perun-network/perun-ckb-contract [INFO] tweaked toml for git repo https://github.com/perun-network/perun-ckb-contract written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/perun-network/perun-ckb-contract 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/perun-network/perun-ckb-contract 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 cpufeatures v0.2.17 [INFO] [stderr] Downloaded version_check v0.9.5 [INFO] [stderr] Downloaded subtle v2.6.1 [INFO] [stderr] Downloaded itoa v1.0.15 [INFO] [stderr] Downloaded ruint-macro v1.2.1 [INFO] [stderr] Downloaded equivalent v1.0.2 [INFO] [stderr] Downloaded rand_pcg v0.2.1 [INFO] [stderr] Downloaded alloy-sol-macro-input v0.7.7 [INFO] [stderr] Downloaded ckb-merkle-mountain-range v0.5.2 [INFO] [stderr] Downloaded crunchy v0.2.4 [INFO] [stderr] Downloaded tiny-keccak v2.0.2 [INFO] [stderr] Downloaded dunce v1.0.5 [INFO] [stderr] Downloaded futures-io v0.3.31 [INFO] [stderr] Downloaded alloy-sol-macro-expander v0.7.7 [INFO] [stderr] Downloaded ckb-always-success-script v0.0.1 [INFO] [stderr] Downloaded ckb-hash v0.119.0 [INFO] [stderr] Downloaded alloy-sol-types v0.7.7 [INFO] [stderr] Downloaded windows-implement v0.59.0 [INFO] [stderr] Downloaded futures-sink v0.3.31 [INFO] [stderr] Downloaded windows-collections v0.1.1 [INFO] [stderr] Downloaded libm v0.2.15 [INFO] [stderr] Downloaded ckb-dao v0.200.0 [INFO] [stderr] Downloaded scroll v0.10.2 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.100 [INFO] [stderr] Downloaded syn v2.0.100 [INFO] [stderr] Downloaded either v1.15.0 [INFO] [stderr] Downloaded futures v0.3.31 [INFO] [stderr] Downloaded js-sys v0.3.77 [INFO] [stderr] Downloaded miette v5.10.0 [INFO] [stderr] Downloaded flate2 v1.1.0 [INFO] [stderr] Downloaded backtrace v0.3.74 [INFO] [stderr] Downloaded ruint v1.16.0 [INFO] [stderr] Downloaded futures-util v0.3.31 [INFO] [stderr] Downloaded goblin v0.2.3 [INFO] [stderr] Downloaded libc v0.2.171 [INFO] [stderr] Downloaded ckb-std v0.16.4 [INFO] [stderr] Downloaded ckb-gen-types v0.119.0 [INFO] [stderr] Downloaded goblin v0.4.0 [INFO] [stderr] Downloaded unicode-width v0.1.14 [INFO] [stderr] Downloaded gimli v0.31.1 [INFO] [stderr] Downloaded secp256k1 v0.30.0 [INFO] [stderr] Downloaded object v0.36.7 [INFO] [stderr] Downloaded ckb-vm v0.24.13 [INFO] [stderr] Downloaded bumpalo v3.17.0 [INFO] [stderr] Downloaded wasm-bindgen v0.2.100 [INFO] [stderr] Downloaded log v0.4.26 [INFO] [stderr] Downloaded rustix v1.0.2 [INFO] [stderr] Downloaded once_cell v1.21.1 [INFO] [stderr] Downloaded addr2line v0.24.2 [INFO] [stderr] Downloaded miniz_oxide v0.8.5 [INFO] [stderr] Downloaded derive_more v0.99.19 [INFO] [stderr] Downloaded alloy-primitives v0.7.7 [INFO] [stderr] Downloaded hashbrown v0.15.4 [INFO] [stderr] Downloaded indexmap v2.10.0 [INFO] [stderr] Downloaded cacache v13.1.0 [INFO] [stderr] Downloaded bitcoin_hashes v0.14.0 [INFO] [stderr] Downloaded crc32fast v1.4.2 [INFO] [stderr] Downloaded ckb-resource v0.200.0 [INFO] [stderr] Downloaded semver v1.0.26 [INFO] [stderr] Downloaded windows-core v0.60.1 [INFO] [stderr] Downloaded xxhash-rust v0.8.15 [INFO] [stderr] Downloaded tempfile v3.19.0 [INFO] [stderr] Downloaded tokio-stream v0.1.17 [INFO] [stderr] Downloaded arrayvec v0.7.6 [INFO] [stderr] Downloaded hex-conservative v0.2.1 [INFO] [stderr] Downloaded ckb-chain-spec v0.200.0 [INFO] [stderr] Downloaded tokio v1.44.1 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.100 [INFO] [stderr] Downloaded web-time v1.1.0 [INFO] [stderr] Downloaded rustc-demangle v0.1.24 [INFO] [stderr] Downloaded ckb-verification v0.200.0 [INFO] [stderr] Downloaded rustc_version v0.4.1 [INFO] [stderr] Downloaded hex-literal v0.4.1 [INFO] [stderr] Downloaded syn-solidity v0.7.7 [INFO] [stderr] Downloaded proptest v1.7.0 [INFO] [stderr] Downloaded zerocopy v0.8.23 [INFO] [stderr] Downloaded futures-macro v0.3.31 [INFO] [stderr] Downloaded futures-task v0.3.31 [INFO] [stderr] Downloaded windows-future v0.1.1 [INFO] [stderr] Downloaded windows-interface v0.59.0 [INFO] [stderr] Downloaded windows-result v0.3.1 [INFO] [stderr] Downloaded windows-link v0.1.0 [INFO] [stderr] Downloaded reflink-copy v0.1.25 [INFO] [stderr] Downloaded ssri v9.2.0 [INFO] [stderr] Downloaded ckb-crypto v0.200.0 [INFO] [stderr] Downloaded ckb-dao-utils v0.200.0 [INFO] [stderr] Downloaded includedir v0.6.0 [INFO] [stderr] Downloaded includedir_codegen v0.6.0 [INFO] [stderr] Downloaded ckb-system-scripts v0.5.4 [INFO] [stderr] Downloaded phf v0.8.0 [INFO] [stderr] Downloaded ckb-logger v0.200.0 [INFO] [stderr] Downloaded ckb-vm-definitions v0.24.13 [INFO] [stderr] Downloaded plain v0.2.3 [INFO] [stderr] Downloaded scroll_derive v0.10.5 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.100 [INFO] [stderr] Downloaded ckb-verification-traits v0.200.0 [INFO] [stderr] Downloaded adler2 v2.0.0 [INFO] [stderr] Downloaded ckb-script v0.200.0 [INFO] [stderr] Downloaded tokio-macros v2.5.0 [INFO] [stderr] Downloaded ckb-testtool v0.15.1 [INFO] [stderr] Downloaded wasi v0.14.2+wasi-0.2.4 [INFO] [stderr] Downloaded serde_json v1.0.140 [INFO] [stderr] Downloaded sha-1 v0.10.1 [INFO] [stderr] Downloaded errno v0.3.10 [INFO] [stderr] Downloaded windows-numerics v0.1.1 [INFO] [stderr] Downloaded miette-derive v5.10.0 [INFO] [stderr] Downloaded phf_codegen v0.8.0 [INFO] [stderr] Downloaded convert_case v0.4.0 [INFO] [stderr] Downloaded ckb-std v0.17.2 [INFO] [stderr] Downloaded blake2b-ref v0.3.1 [INFO] [stderr] Downloaded windows-strings v0.3.1 [INFO] [stderr] Downloaded fastrand v2.3.0 [INFO] [stderr] Downloaded bitcoin-io v0.1.3 [INFO] [stderr] Downloaded ckb-pow v0.200.0 [INFO] [stderr] Downloaded phf_shared v0.8.0 [INFO] [stderr] Downloaded winapi-util v0.1.9 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.100 [INFO] [stderr] Downloaded ckb-systemtime v0.200.0 [INFO] [stderr] Downloaded lru v0.7.8 [INFO] [stderr] Downloaded crossbeam-channel v0.5.14 [INFO] [stderr] Downloaded ckb-gen-types v0.200.0 [INFO] [stderr] Downloaded cc v1.2.16 [INFO] [stderr] Downloaded crypto-bigint v0.5.5 [INFO] [stderr] Downloaded der v0.7.9 [INFO] [stderr] Downloaded zerocopy-derive v0.8.23 [INFO] [stderr] Downloaded rand v0.9.0 [INFO] [stderr] Downloaded ckb_schemars v0.8.22 [INFO] [stderr] Downloaded derive_more-impl v1.0.0 [INFO] [stderr] Downloaded elliptic-curve v0.13.8 [INFO] [stderr] Downloaded k256 v0.13.4 [INFO] [stderr] Downloaded bytes v1.10.1 [INFO] [stderr] Downloaded serde_derive v1.0.219 [INFO] [stderr] Downloaded futures-core v0.3.31 [INFO] [stderr] Downloaded eaglesong v0.1.0 [INFO] [stderr] Downloaded phf_generator v0.8.0 [INFO] [stderr] Downloaded anyhow v1.0.97 [INFO] [stderr] Downloaded derive_more v1.0.0 [INFO] [stderr] Downloaded ckb-types v0.200.0 [INFO] [stderr] Downloaded r-efi v5.2.0 [INFO] [stderr] Downloaded getrandom v0.3.2 [INFO] [stderr] Downloaded ryu v1.0.20 [INFO] [stderr] Downloaded proc-macro2 v1.0.94 [INFO] [stderr] Downloaded unicode-ident v1.0.18 [INFO] [stderr] Downloaded futures-executor v0.3.31 [INFO] [stderr] Downloaded futures-channel v0.3.31 [INFO] [stderr] Downloaded linux-raw-sys v0.9.3 [INFO] [stderr] Downloaded ckb-jsonrpc-types v0.200.0 [INFO] [stderr] Downloaded libloading v0.8.6 [INFO] [stderr] Downloaded crossbeam-utils v0.8.21 [INFO] [stderr] Downloaded serde_derive_internals v0.26.0 [INFO] [stderr] Downloaded windows-sys v0.59.0 [INFO] [stderr] Downloaded numext-constructor v0.1.6 [INFO] [stderr] Downloaded bitflags v2.9.0 [INFO] [stderr] Downloaded const-hex v1.14.1 [INFO] [stderr] Downloaded buddy-alloc v0.6.0 [INFO] [stderr] Downloaded ckb_schemars_derive v0.8.22 [INFO] [stderr] Downloaded quote v1.0.40 [INFO] [stderr] Downloaded autocfg v1.4.0 [INFO] [stderr] Downloaded ckb-x64-simulator v0.11.1 [INFO] [stderr] Downloaded bit-vec v0.6.3 [INFO] [stderr] Downloaded shlex v1.3.0 [INFO] [stderr] Downloaded golomb-coded-set v0.2.1 [INFO] [stderr] Downloaded thiserror-impl v1.0.69 [INFO] [stderr] Downloaded thiserror v1.0.69 [INFO] [stderr] Downloaded ecdsa v0.16.9 [INFO] [stderr] Downloaded ff v0.13.1 [INFO] [stderr] Downloaded secp256k1-sys v0.10.1 [INFO] [stderr] Downloaded group v0.13.0 [INFO] [stderr] Downloaded sec1 v0.7.3 [INFO] [stderr] Downloaded molecule v0.8.0 [INFO] [stderr] Downloaded ppv-lite86 v0.2.21 [INFO] [stderr] Downloaded rand_chacha v0.9.0 [INFO] [stderr] Downloaded rand_core v0.9.3 [INFO] [stderr] Downloaded rand_xorshift v0.4.0 [INFO] [stderr] Downloaded unarray v0.1.4 [INFO] [stderr] Downloaded ckb-traits v0.200.0 [INFO] [stderr] Downloaded ckb-mock-tx-types v0.200.0 [INFO] [stderr] Downloaded ckb-channel v0.200.0 [INFO] [stderr] Downloaded ckb-constant v0.200.0 [INFO] [stderr] Downloaded ckb-error v0.200.0 [INFO] [stderr] Downloaded dyn-clone v1.0.19 [INFO] [stderr] Downloaded ckb-fixed-hash-core v0.200.0 [INFO] [stderr] Downloaded ckb-fixed-hash-macros v0.200.0 [INFO] [stderr] Downloaded ckb-fixed-hash v0.200.0 [INFO] [stderr] Downloaded blake2b-rs v0.2.0 [INFO] [stderr] Downloaded ckb-occupied-capacity-core v0.200.0 [INFO] [stderr] Downloaded ckb-occupied-capacity-macros v0.200.0 [INFO] [stderr] Downloaded ckb-occupied-capacity v0.200.0 [INFO] [stderr] Downloaded ckb-rational v0.200.0 [INFO] [stderr] Downloaded unicode-xid v0.2.6 [INFO] [stderr] Downloaded wit-bindgen-rt v0.39.0 [INFO] [stderr] Downloaded alloy-sol-macro v0.7.7 [INFO] [stderr] Downloaded gcd v2.3.0 [INFO] [stderr] Downloaded cty v0.2.2 [INFO] [stderr] Downloaded merkle-cbt v0.3.2 [INFO] [stderr] Downloaded serde v1.0.219 [INFO] [stderr] Downloaded zeroize v1.8.1 [INFO] [stderr] Downloaded typenum v1.18.0 [INFO] [stderr] Downloaded numext-fixed-uint-core v0.1.6 [INFO] [stderr] Downloaded numext-fixed-uint v0.1.6 [INFO] [stderr] Downloaded faster-hex v0.6.1 [INFO] [stderr] Downloaded rustc-std-workspace-alloc v1.0.1 [INFO] [stderr] Downloaded heapsize v0.4.2 [INFO] [stderr] Downloaded numext-fixed-uint-hack v0.1.6 [INFO] [stderr] Downloaded base16ct v0.2.0 [INFO] [stderr] Downloaded ckb-hash v0.200.0 [INFO] [stderr] Downloaded signature v2.2.0 [INFO] [stderr] Downloaded rustc-std-workspace-core v1.0.1 [INFO] [stderr] Downloaded rfc6979 v0.4.0 [INFO] [stderr] Downloaded const-oid v0.9.6 [INFO] [stderr] Downloaded windows v0.60.0 [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] bb0dacf925be57bd9b506497d8fe1faaa2c368cdd469e70e671128b9af13ade1 [INFO] running `Command { std: "docker" "start" "-a" "bb0dacf925be57bd9b506497d8fe1faaa2c368cdd469e70e671128b9af13ade1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bb0dacf925be57bd9b506497d8fe1faaa2c368cdd469e70e671128b9af13ade1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bb0dacf925be57bd9b506497d8fe1faaa2c368cdd469e70e671128b9af13ade1", kill_on_drop: false }` [INFO] [stdout] bb0dacf925be57bd9b506497d8fe1faaa2c368cdd469e70e671128b9af13ade1 [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] 34e502e9d9715458a8e33666f64057ce3b63772c2127077a62655344f785746c [INFO] running `Command { std: "docker" "start" "-a" "34e502e9d9715458a8e33666f64057ce3b63772c2127077a62655344f785746c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling zerocopy v0.8.23 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling cc v1.2.16 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling heapsize v0.4.2 [INFO] [stderr] Compiling faster-hex v0.6.1 [INFO] [stderr] Compiling ckb_schemars v0.8.22 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Compiling dyn-clone v1.0.19 [INFO] [stderr] Compiling anyhow v1.0.97 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling rand_pcg v0.2.1 [INFO] [stderr] Compiling blake2b-rs v0.2.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Checking const-oid v0.9.6 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking blake2b-ref v0.3.1 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Checking siphasher v0.3.11 [INFO] [stderr] Compiling serde_derive_internals v0.26.0 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking cty v0.2.2 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking ckb-hash v0.200.0 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Checking golomb-coded-set v0.2.1 [INFO] [stderr] Checking ckb-merkle-mountain-range v0.5.2 [INFO] [stderr] Checking merkle-cbt v0.3.2 [INFO] [stderr] Checking ckb-constant v0.200.0 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Checking crossbeam-channel v0.5.14 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling const-hex v1.14.1 [INFO] [stderr] Checking ckb-channel v0.200.0 [INFO] [stderr] Checking ff v0.13.1 [INFO] [stderr] Checking der v0.7.9 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling ckb_schemars_derive v0.8.22 [INFO] [stderr] Compiling numext-constructor v0.1.6 [INFO] [stderr] Checking base16ct v0.2.0 [INFO] [stderr] Compiling hashbrown v0.15.4 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Checking group v0.13.0 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking crypto-bigint v0.5.5 [INFO] [stderr] Compiling ruint-macro v1.2.1 [INFO] [stderr] Checking rfc6979 v0.4.0 [INFO] [stderr] Checking ruint v1.16.0 [INFO] [stderr] Checking sec1 v0.7.3 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Compiling indexmap v2.10.0 [INFO] [stderr] Compiling ckb-std v0.17.2 [INFO] [stderr] Checking buddy-alloc v0.6.0 [INFO] [stderr] Checking gcd v2.3.0 [INFO] [stderr] Checking hex-literal v0.4.1 [INFO] [stderr] Compiling syn-solidity v0.7.7 [INFO] [stderr] Checking keccak v0.1.5 [INFO] [stderr] Checking sha3 v0.10.8 [INFO] [stderr] Compiling phf_shared v0.8.0 [INFO] [stderr] Compiling adler2 v2.0.0 [INFO] [stderr] Compiling miniz_oxide v0.8.5 [INFO] [stderr] Compiling crc32fast v1.4.2 [INFO] [stderr] Compiling phf_generator v0.8.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Checking elliptic-curve v0.13.8 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Compiling phf_codegen v0.8.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Checking once_cell v1.21.1 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Checking ecdsa v0.16.9 [INFO] [stderr] Compiling flate2 v1.1.0 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Checking k256 v0.13.4 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Compiling includedir_codegen v0.6.0 [INFO] [stderr] Compiling phf v0.8.0 [INFO] [stderr] Checking log v0.4.26 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Compiling ckb-system-scripts v0.5.4 [INFO] [stderr] Compiling rustix v1.0.2 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling includedir v0.6.0 [INFO] [stderr] Compiling secp256k1-sys v0.10.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling derive_more-impl v1.0.0 [INFO] [stderr] Compiling derive_more v0.99.19 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling alloy-sol-macro-input v0.7.7 [INFO] [stderr] Compiling alloy-sol-macro-expander v0.7.7 [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking derive_more v1.0.0 [INFO] [stderr] Checking linux-raw-sys v0.9.3 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling miette-derive v5.10.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Compiling scroll_derive v0.10.5 [INFO] [stderr] Checking sha-1 v0.10.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Compiling alloy-sol-macro v0.7.7 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Checking xxhash-rust v0.8.15 [INFO] [stderr] Checking reflink-copy v0.1.25 [INFO] [stderr] Checking scroll v0.10.2 [INFO] [stderr] Checking tempfile v3.19.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking miette v5.10.0 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking memmap2 v0.5.10 [INFO] [stderr] Compiling ahash v0.7.8 [INFO] [stderr] Checking plain v0.2.3 [INFO] [stderr] Checking eaglesong v0.1.0 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking ckb-logger v0.200.0 [INFO] [stderr] Compiling ckb-vm v0.24.13 [INFO] [stderr] Checking goblin v0.2.3 [INFO] [stderr] Checking goblin v0.4.0 [INFO] [stderr] Checking ckb-vm-definitions v0.24.13 [INFO] [stderr] Compiling ckb-script v0.200.0 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking ckb-hash v0.119.0 [INFO] [stderr] Compiling ckb-std v0.16.4 [INFO] [stderr] Checking ckb-systemtime v0.200.0 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking ckb-always-success-script v0.0.1 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking lru v0.7.8 [INFO] [stderr] Checking rand v0.9.0 [INFO] [stderr] Checking secp256k1 v0.30.0 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking ckb-occupied-capacity-core v0.200.0 [INFO] [stderr] Checking numext-fixed-uint-core v0.1.6 [INFO] [stderr] Checking ssri v9.2.0 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking molecule v0.8.0 [INFO] [stderr] Compiling ckb-occupied-capacity-macros v0.200.0 [INFO] [stderr] Checking alloy-primitives v0.7.7 [INFO] [stderr] Checking tokio v1.44.1 [INFO] [stderr] Checking ckb-occupied-capacity v0.200.0 [INFO] [stderr] Checking ckb-error v0.200.0 [INFO] [stderr] Checking alloy-sol-types v0.7.7 [INFO] [stderr] Checking ckb-verification-traits v0.200.0 [INFO] [stderr] Checking ckb-gen-types v0.119.0 [INFO] [stderr] Checking ckb-fixed-hash-core v0.200.0 [INFO] [stderr] Compiling ckb-fixed-hash-macros v0.200.0 [INFO] [stderr] Checking ckb-fixed-hash v0.200.0 [INFO] [stderr] Checking ckb-crypto v0.200.0 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking cacache v13.1.0 [INFO] [stderr] Compiling numext-fixed-uint-hack v0.1.6 [INFO] [stderr] Checking numext-fixed-uint v0.1.6 [INFO] [stderr] Compiling ckb-rational v0.200.0 [INFO] [stderr] Compiling ckb-gen-types v0.200.0 [INFO] [stderr] Checking ckb-types v0.200.0 [INFO] [stderr] Checking perun-common v0.1.0 (/opt/rustwide/workdir/crates/perun-common) [INFO] [stderr] Checking ckb-jsonrpc-types v0.200.0 [INFO] [stderr] Checking ckb-traits v0.200.0 [INFO] [stderr] Checking ckb-dao-utils v0.200.0 [INFO] [stderr] Checking ckb-pow v0.200.0 [INFO] [stdout] warning: unused import: `alloy_primitives::U256` [INFO] [stdout] --> crates/perun-common/src/helpers.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use alloy_primitives::U256; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/perun-common/src/sol.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | assets: assets, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `assets` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/perun-common/src/sol.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | backends: backends, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `backends` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `alloy_primitives::U256` [INFO] [stdout] --> crates/perun-common/src/helpers.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use alloy_primitives::U256; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/perun-common/src/sol.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | assets: assets, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `assets` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/perun-common/src/sol.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | backends: backends, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `backends` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> crates/perun-common/src/error.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | _TypeIDError => Self::TypeIDError, [INFO] [stdout] | ^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> crates/perun-common/src/error.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 144 | MaxFdsCreated => Self::MaxFdsCreated, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] 145 | MaxVmsSpawned => Self::MaxVmsSpawned, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] 146 | OtherEndClosed => Self::OtherEndClosed, [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 147 | InvalidFd => Self::InvalidFd, [INFO] [stdout] | --------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 154 | _TypeIDError => Self::TypeIDError, [INFO] [stdout] | ^^^^^^^^^^^^ ...and 6 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> crates/perun-common/src/helpers.rs:801:14 [INFO] [stdout] | [INFO] [stdout] 801 | for (i, balance) in self.into_iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> crates/perun-common/src/error.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | _TypeIDError => Self::TypeIDError, [INFO] [stdout] | ^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> crates/perun-common/src/error.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 144 | MaxFdsCreated => Self::MaxFdsCreated, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] 145 | MaxVmsSpawned => Self::MaxVmsSpawned, [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] 146 | OtherEndClosed => Self::OtherEndClosed, [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 147 | InvalidFd => Self::InvalidFd, [INFO] [stdout] | --------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 154 | _TypeIDError => Self::TypeIDError, [INFO] [stdout] | ^^^^^^^^^^^^ ...and 6 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> crates/perun-common/src/helpers.rs:801:14 [INFO] [stdout] | [INFO] [stdout] 801 | for (i, balance) in self.into_iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling ckb-resource v0.200.0 [INFO] [stdout] warning: unused variable: `balances` [INFO] [stdout] --> crates/perun-common/src/sol.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let balances = state.balances(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_balances` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/channels.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | return Err(Error::MoreThanOneChannel); [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] 208 - return Err(Error::MoreThanOneChannel); [INFO] [stdout] 208 + Err(Error::MoreThanOneChannel) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/channels.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | return Ok(()); [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] 210 - return Ok(()); [INFO] [stdout] 210 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/error.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | return Self::SignatureVerificationError; [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] 174 - return Self::SignatureVerificationError; [INFO] [stdout] 174 + Self::SignatureVerificationError [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | return ctrue!(); [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] 31 - return ctrue!(); [INFO] [stdout] 31 + ctrue!() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | return cfalse!(); [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] 33 - return cfalse!(); [INFO] [stdout] 33 + cfalse!() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:538:9 [INFO] [stdout] | [INFO] [stdout] 538 | return sum; [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] 538 - return sum; [INFO] [stdout] 538 + sum [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:547:9 [INFO] [stdout] | [INFO] [stdout] 547 | return Err(Error::InvalidSUDT); [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] 547 - return Err(Error::InvalidSUDT); [INFO] [stdout] 547 + Err(Error::InvalidSUDT) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:560:9 [INFO] [stdout] | [INFO] [stdout] 560 | return Ok(true); [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] 560 - return Ok(true); [INFO] [stdout] 560 + Ok(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:672:9 [INFO] [stdout] | [INFO] [stdout] 672 | return self.balances().mk_outputs(mk_lock_script, vec![0, 1]); [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] 672 - return self.balances().mk_outputs(mk_lock_script, vec![0, 1]); [INFO] [stdout] 672 + self.balances().mk_outputs(mk_lock_script, vec![0, 1]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/perun-common/src/helpers.rs:732:17 [INFO] [stdout] | [INFO] [stdout] 732 | / if locked_sudt.asset().as_slice() == vc_sudt.asset().as_slice() { [INFO] [stdout] 733 | | if locked_sudt.distribution().sum() != vc_sudt.distribution().sum() { [INFO] [stdout] 734 | | return Ok(false); [INFO] [stdout] 735 | | } [INFO] [stdout] 736 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 732 ~ if locked_sudt.asset().as_slice() == vc_sudt.asset().as_slice() [INFO] [stdout] 733 ~ && locked_sudt.distribution().sum() != vc_sudt.distribution().sum() { [INFO] [stdout] 734 | return Ok(false); [INFO] [stdout] 735 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> crates/perun-common/src/helpers.rs:754:36 [INFO] [stdout] | [INFO] [stdout] 754 | let cap = self.get(index.clone() as usize).expect("invalid index"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*index` [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 `u8` which implements the `Copy` trait [INFO] [stdout] --> crates/perun-common/src/helpers.rs:776:36 [INFO] [stdout] | [INFO] [stdout] 776 | let cap = self.get(index.clone() as usize).expect("invalid index"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*index` [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] --> crates/perun-common/src/helpers.rs:838:9 [INFO] [stdout] | [INFO] [stdout] 838 | return outputs; [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] 838 - return outputs; [INFO] [stdout] 838 + outputs [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:901:9 [INFO] [stdout] | [INFO] [stdout] 901 | return outputs; [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] 901 - return outputs; [INFO] [stdout] 901 + outputs [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> crates/perun-common/src/helpers.rs:865:30 [INFO] [stdout] | [INFO] [stdout] 865 | .get(i as usize) [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> crates/perun-common/src/helpers.rs:884:30 [INFO] [stdout] | [INFO] [stdout] 884 | .get(i as usize) [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `balances` [INFO] [stdout] --> crates/perun-common/src/sol.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let balances = state.balances(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_balances` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/channels.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | return Err(Error::MoreThanOneChannel); [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] 208 - return Err(Error::MoreThanOneChannel); [INFO] [stdout] 208 + Err(Error::MoreThanOneChannel) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/channels.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | return Ok(()); [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] 210 - return Ok(()); [INFO] [stdout] 210 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/error.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | return Self::SignatureVerificationError; [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] 174 - return Self::SignatureVerificationError; [INFO] [stdout] 174 + Self::SignatureVerificationError [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | return ctrue!(); [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] 31 - return ctrue!(); [INFO] [stdout] 31 + ctrue!() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | return cfalse!(); [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] 33 - return cfalse!(); [INFO] [stdout] 33 + cfalse!() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:538:9 [INFO] [stdout] | [INFO] [stdout] 538 | return sum; [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] 538 - return sum; [INFO] [stdout] 538 + sum [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:547:9 [INFO] [stdout] | [INFO] [stdout] 547 | return Err(Error::InvalidSUDT); [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] 547 - return Err(Error::InvalidSUDT); [INFO] [stdout] 547 + Err(Error::InvalidSUDT) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:560:9 [INFO] [stdout] | [INFO] [stdout] 560 | return Ok(true); [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] 560 - return Ok(true); [INFO] [stdout] 560 + Ok(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:672:9 [INFO] [stdout] | [INFO] [stdout] 672 | return self.balances().mk_outputs(mk_lock_script, vec![0, 1]); [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] 672 - return self.balances().mk_outputs(mk_lock_script, vec![0, 1]); [INFO] [stdout] 672 + self.balances().mk_outputs(mk_lock_script, vec![0, 1]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/perun-common/src/helpers.rs:732:17 [INFO] [stdout] | [INFO] [stdout] 732 | / if locked_sudt.asset().as_slice() == vc_sudt.asset().as_slice() { [INFO] [stdout] 733 | | if locked_sudt.distribution().sum() != vc_sudt.distribution().sum() { [INFO] [stdout] 734 | | return Ok(false); [INFO] [stdout] 735 | | } [INFO] [stdout] 736 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 732 ~ if locked_sudt.asset().as_slice() == vc_sudt.asset().as_slice() [INFO] [stdout] 733 ~ && locked_sudt.distribution().sum() != vc_sudt.distribution().sum() { [INFO] [stdout] 734 | return Ok(false); [INFO] [stdout] 735 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> crates/perun-common/src/helpers.rs:754:36 [INFO] [stdout] | [INFO] [stdout] 754 | let cap = self.get(index.clone() as usize).expect("invalid index"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*index` [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 `u8` which implements the `Copy` trait [INFO] [stdout] --> crates/perun-common/src/helpers.rs:776:36 [INFO] [stdout] | [INFO] [stdout] 776 | let cap = self.get(index.clone() as usize).expect("invalid index"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*index` [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] --> crates/perun-common/src/helpers.rs:838:9 [INFO] [stdout] | [INFO] [stdout] 838 | return outputs; [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] 838 - return outputs; [INFO] [stdout] 838 + outputs [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/perun-common/src/helpers.rs:901:9 [INFO] [stdout] | [INFO] [stdout] 901 | return outputs; [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] 901 - return outputs; [INFO] [stdout] 901 + outputs [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> crates/perun-common/src/helpers.rs:865:30 [INFO] [stdout] | [INFO] [stdout] 865 | .get(i as usize) [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> crates/perun-common/src/helpers.rs:884:30 [INFO] [stdout] | [INFO] [stdout] 884 | .get(i as usize) [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `alloy_primitives::bytes::Bytes` [INFO] [stdout] --> crates/perun-common/src/sol.rs:145:35 [INFO] [stdout] | [INFO] [stdout] 145 | let asset_bytes = bytes::Bytes::from(sudt.asset().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `bytes::Bytes::from()`: `sudt.asset().as_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/perun-common/src/sol.rs:318:5 [INFO] [stdout] | [INFO] [stdout] 318 | / fn make_ckb_eth_state( [INFO] [stdout] 319 | | cid: [u8; 32], version: u64, is_final: bool, [INFO] [stdout] 320 | | ckb_a: u64, ckb_b: u64, [INFO] [stdout] 321 | | chain_id: u128, addr: [u8; 20], eth_a: u128, eth_b: u128, [INFO] [stdout] 322 | | ) -> ChannelState { [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: variable `_TypeIDError` should have a snake case name [INFO] [stdout] --> crates/perun-common/src/error.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | _TypeIDError => Self::TypeIDError, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `_type_iderror` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `alloy_primitives::bytes::Bytes` [INFO] [stdout] --> crates/perun-common/src/sol.rs:145:35 [INFO] [stdout] | [INFO] [stdout] 145 | let asset_bytes = bytes::Bytes::from(sudt.asset().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `bytes::Bytes::from()`: `sudt.asset().as_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `_TypeIDError` should have a snake case name [INFO] [stdout] --> crates/perun-common/src/error.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | _TypeIDError => Self::TypeIDError, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `_type_iderror` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking ckb-chain-spec v0.200.0 [INFO] [stderr] Checking ckb-mock-tx-types v0.200.0 [INFO] [stderr] Checking perun-vchannel-lockscript v0.1.0 (/opt/rustwide/workdir/contracts/perun-vchannel-lockscript) [INFO] [stderr] Checking sample-udt v0.1.0 (/opt/rustwide/workdir/contracts/sample-udt) [INFO] [stderr] Checking perun-funds-lockscript v0.1.0 (/opt/rustwide/workdir/contracts/perun-funds-lockscript) [INFO] [stderr] Checking perun-vchannel-typescript v0.1.0 (/opt/rustwide/workdir/contracts/perun-vchannel-typescript) [INFO] [stderr] Checking perun-channel-typescript v0.1.0 (/opt/rustwide/workdir/contracts/perun-channel-typescript) [INFO] [stderr] Checking perun-channel-lockscript v0.1.0 (/opt/rustwide/workdir/contracts/perun-channel-lockscript) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:700:21 [INFO] [stdout] | [INFO] [stdout] 700 | input_vc_status: input_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:701:21 [INFO] [stdout] | [INFO] [stdout] 701 | output_vc_status: output_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:723:13 [INFO] [stdout] | [INFO] [stdout] 723 | input_vc_status: input_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::arch::asm` [INFO] [stdout] --> contracts/perun-channel-lockscript/src/lib.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use core::arch::asm; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-funds-lockscript/src/lib.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return verify_pcts_in_inputs(&pcts_script_hash.unpack()); [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] 40 - return verify_pcts_in_inputs(&pcts_script_hash.unpack()); [INFO] [stdout] 40 + verify_pcts_in_inputs(&pcts_script_hash.unpack()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-channel-lockscript/src/lib.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return Ok(()); [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] 76 - return Ok(()); [INFO] [stdout] 76 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:9:28 [INFO] [stdout] | [INFO] [stdout] 9 | use core::{result::Result, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-vchannel-lockscript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:123:26 [INFO] [stdout] | [INFO] [stdout] 123 | verify_vc_sigs_start(&new_vc_status, &vc_channel_constants.params())?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:127:45 [INFO] [stdout] | [INFO] [stdout] 127 | verify_first_forced_closed_flag_not_set(&new_vc_status)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:136:27 [INFO] [stdout] | [INFO] [stdout] 136 | verify_max_one_parent(&new_vc_status)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / match matches.len() { [INFO] [stdout] 156 | | 0 => return Err(Error::InvalidVCTxStart), //Input should contain at least cell belonging to owner [INFO] [stdout] 157 | | _ => (), [INFO] [stdout] 158 | | }; [INFO] [stdout] | |_____^ help: try: `if matches.len() == 0 { return Err(Error::InvalidVCTxStart) }` [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:244:28 [INFO] [stdout] | [INFO] [stdout] 244 | let parent_input_idx = match get_parent_of_vc(input_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 245 | | Ok(idx) => idx, [INFO] [stdout] 246 | | Err(e) => return Err(e), [INFO] [stdout] 247 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(input_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:270:28 [INFO] [stdout] | [INFO] [stdout] 270 | let parent_input_idx = match get_parent_of_vc(input_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 271 | | Ok(idx) => idx, [INFO] [stdout] 272 | | Err(e) => return Err(e), [INFO] [stdout] 273 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(input_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:303:8 [INFO] [stdout] | [INFO] [stdout] 303 | if matches.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `matches.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: accessing first element with `matches.get(0)` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:338:14 [INFO] [stdout] | [INFO] [stdout] 338 | 1 => matches.get(0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `matches.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:342:46 [INFO] [stdout] | [INFO] [stdout] 342 | let output_capacity = load_cell_capacity(output_idx.clone(), Source::Output)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*output_idx` [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 `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:426:28 [INFO] [stdout] | [INFO] [stdout] 426 | let parent_input_idx = match get_parent_of_vc(new_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 427 | | Ok(idx) => idx, [INFO] [stdout] 428 | | Err(e) => return Err(e), [INFO] [stdout] 429 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(new_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:510:16 [INFO] [stdout] | [INFO] [stdout] 510 | if let Some(_) = find_cell_by_type_hash(&hash, Source::Input)? { [INFO] [stdout] | -------^^^^^^^------------------------------------------------ help: try: `if find_cell_by_type_hash(&hash, Source::Input)?.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:510:49 [INFO] [stdout] | [INFO] [stdout] 510 | if let Some(_) = find_cell_by_type_hash(&hash, Source::Input)? { [INFO] [stdout] | ^^^^^ help: change this to: `hash` [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] --> contracts/perun-vchannel-typescript/src/lib.rs:629:9 [INFO] [stdout] | [INFO] [stdout] 629 | / return Ok(VChannelAction::Start { [INFO] [stdout] 630 | | new_vc_status: vc_status, [INFO] [stdout] 631 | | old_lc_status: parent_input_data, [INFO] [stdout] 632 | | new_lc_status: parent_output_data, [INFO] [stdout] 633 | | }); [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] 629 ~ Ok(VChannelAction::Start { [INFO] [stdout] 630 + new_vc_status: vc_status, [INFO] [stdout] 631 + old_lc_status: parent_input_data, [INFO] [stdout] 632 + new_lc_status: parent_output_data, [INFO] [stdout] 633 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:664:9 [INFO] [stdout] | [INFO] [stdout] 664 | / return Ok(VChannelAction::Merge { [INFO] [stdout] 665 | | input_vc_status1: input_vc_statuses[0].clone().unwrap(), [INFO] [stdout] 666 | | input_vc_status2: input_vc_statuses[1].clone().unwrap(), [INFO] [stdout] 667 | | merged_vc_status: output_vc_status, [INFO] [stdout] 668 | | }); [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] 664 ~ Ok(VChannelAction::Merge { [INFO] [stdout] 665 + input_vc_status1: input_vc_statuses[0].clone().unwrap(), [INFO] [stdout] 666 + input_vc_status2: input_vc_statuses[1].clone().unwrap(), [INFO] [stdout] 667 + merged_vc_status: output_vc_status, [INFO] [stdout] 668 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:692:17 [INFO] [stdout] | [INFO] [stdout] 692 | / return Ok(VChannelAction::Progress { [INFO] [stdout] 693 | | old_status: input_vc_status, [INFO] [stdout] 694 | | new_status: output_vc_status, [INFO] [stdout] 695 | | }); [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] 692 ~ Ok(VChannelAction::Progress { [INFO] [stdout] 693 + old_status: input_vc_status, [INFO] [stdout] 694 + new_status: output_vc_status, [INFO] [stdout] 695 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:699:17 [INFO] [stdout] | [INFO] [stdout] 699 | / return Ok(VChannelAction::Close1 { [INFO] [stdout] 700 | | input_vc_status: input_vc_status, [INFO] [stdout] 701 | | output_vc_status: output_vc_status, [INFO] [stdout] 702 | | }); [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] 699 ~ Ok(VChannelAction::Close1 { [INFO] [stdout] 700 + input_vc_status: input_vc_status, [INFO] [stdout] 701 + output_vc_status: output_vc_status, [INFO] [stdout] 702 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:704:18 [INFO] [stdout] | [INFO] [stdout] 704 | _ => return Err(Error::InvalidVCTx), [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] 704 - _ => return Err(Error::InvalidVCTx), [INFO] [stdout] 704 + _ => Err(Error::InvalidVCTx), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:721:9 [INFO] [stdout] | [INFO] [stdout] 721 | / return Ok(VChannelAction::Close2 { [INFO] [stdout] 722 | | input_lc_status: parent_data, [INFO] [stdout] 723 | | input_vc_status: input_vc_status, [INFO] [stdout] 724 | | }); [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] 721 ~ Ok(VChannelAction::Close2 { [INFO] [stdout] 722 + input_lc_status: parent_data, [INFO] [stdout] 723 + input_vc_status: input_vc_status, [INFO] [stdout] 724 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:726:9 [INFO] [stdout] | [INFO] [stdout] 726 | return Err(Error::InvalidVCTx); [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] 726 - return Err(Error::InvalidVCTx); [INFO] [stdout] 726 + Err(Error::InvalidVCTx) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `input_vc_statuses` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:638:18 [INFO] [stdout] | [INFO] [stdout] 638 | for i in 0..2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 638 - for i in 0..2 { [INFO] [stdout] 638 + for (i, ) in input_vc_statuses.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/sample-udt/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/sample-udt/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-channel-lockscript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::arch::asm` [INFO] [stdout] --> contracts/perun-channel-lockscript/src/lib.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use core::arch::asm; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:750:36 [INFO] [stdout] | [INFO] [stdout] 750 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:752:32 [INFO] [stdout] | [INFO] [stdout] 752 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-funds-lockscript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-funds-lockscript/src/lib.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return verify_pcts_in_inputs(&pcts_script_hash.unpack()); [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] 40 - return verify_pcts_in_inputs(&pcts_script_hash.unpack()); [INFO] [stdout] 40 + verify_pcts_in_inputs(&pcts_script_hash.unpack()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-channel-lockscript/src/lib.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return Ok(()); [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] 76 - return Ok(()); [INFO] [stdout] 76 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-funds-lockscript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-funds-lockscript/src/lib.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return verify_pcts_in_inputs(&pcts_script_hash.unpack()); [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] 40 - return verify_pcts_in_inputs(&pcts_script_hash.unpack()); [INFO] [stdout] 40 + verify_pcts_in_inputs(&pcts_script_hash.unpack()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-channel-lockscript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::arch::asm` [INFO] [stdout] --> contracts/perun-channel-lockscript/src/lib.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use core::arch::asm; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:700:21 [INFO] [stdout] | [INFO] [stdout] 700 | input_vc_status: input_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:701:21 [INFO] [stdout] | [INFO] [stdout] 701 | output_vc_status: output_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:723:13 [INFO] [stdout] | [INFO] [stdout] 723 | input_vc_status: input_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:216:38 [INFO] [stdout] | [INFO] [stdout] 216 | verify_status_not_funded(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:232:34 [INFO] [stdout] | [INFO] [stdout] 232 | verify_funded_status(&new_status, false)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `new_status` [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: this boolean expression can be simplified [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | if !(!old_status.vc_disputed().to_bool() && new_status.vc_disputed().to_bool()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `old_status.vc_disputed().to_bool() || !new_status.vc_disputed().to_bool()` [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] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:9:28 [INFO] [stdout] | [INFO] [stdout] 9 | use core::{result::Result, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:123:26 [INFO] [stdout] | [INFO] [stdout] 123 | verify_vc_sigs_start(&new_vc_status, &vc_channel_constants.params())?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:127:45 [INFO] [stdout] | [INFO] [stdout] 127 | verify_first_forced_closed_flag_not_set(&new_vc_status)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:136:27 [INFO] [stdout] | [INFO] [stdout] 136 | verify_max_one_parent(&new_vc_status)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / match matches.len() { [INFO] [stdout] 156 | | 0 => return Err(Error::InvalidVCTxStart), //Input should contain at least cell belonging to owner [INFO] [stdout] 157 | | _ => (), [INFO] [stdout] 158 | | }; [INFO] [stdout] | |_____^ help: try: `if matches.len() == 0 { return Err(Error::InvalidVCTxStart) }` [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:244:28 [INFO] [stdout] | [INFO] [stdout] 244 | let parent_input_idx = match get_parent_of_vc(input_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 245 | | Ok(idx) => idx, [INFO] [stdout] 246 | | Err(e) => return Err(e), [INFO] [stdout] 247 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(input_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:270:28 [INFO] [stdout] | [INFO] [stdout] 270 | let parent_input_idx = match get_parent_of_vc(input_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 271 | | Ok(idx) => idx, [INFO] [stdout] 272 | | Err(e) => return Err(e), [INFO] [stdout] 273 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(input_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:303:8 [INFO] [stdout] | [INFO] [stdout] 303 | if matches.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `matches.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: accessing first element with `matches.get(0)` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:338:14 [INFO] [stdout] | [INFO] [stdout] 338 | 1 => matches.get(0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `matches.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:342:46 [INFO] [stdout] | [INFO] [stdout] 342 | let output_capacity = load_cell_capacity(output_idx.clone(), Source::Output)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*output_idx` [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 `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:426:28 [INFO] [stdout] | [INFO] [stdout] 426 | let parent_input_idx = match get_parent_of_vc(new_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 427 | | Ok(idx) => idx, [INFO] [stdout] 428 | | Err(e) => return Err(e), [INFO] [stdout] 429 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(new_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:510:16 [INFO] [stdout] | [INFO] [stdout] 510 | if let Some(_) = find_cell_by_type_hash(&hash, Source::Input)? { [INFO] [stdout] | -------^^^^^^^------------------------------------------------ help: try: `if find_cell_by_type_hash(&hash, Source::Input)?.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:510:49 [INFO] [stdout] | [INFO] [stdout] 510 | if let Some(_) = find_cell_by_type_hash(&hash, Source::Input)? { [INFO] [stdout] | ^^^^^ help: change this to: `hash` [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] --> contracts/perun-vchannel-typescript/src/lib.rs:629:9 [INFO] [stdout] | [INFO] [stdout] 629 | / return Ok(VChannelAction::Start { [INFO] [stdout] 630 | | new_vc_status: vc_status, [INFO] [stdout] 631 | | old_lc_status: parent_input_data, [INFO] [stdout] 632 | | new_lc_status: parent_output_data, [INFO] [stdout] 633 | | }); [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] 629 ~ Ok(VChannelAction::Start { [INFO] [stdout] 630 + new_vc_status: vc_status, [INFO] [stdout] 631 + old_lc_status: parent_input_data, [INFO] [stdout] 632 + new_lc_status: parent_output_data, [INFO] [stdout] 633 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:664:9 [INFO] [stdout] | [INFO] [stdout] 664 | / return Ok(VChannelAction::Merge { [INFO] [stdout] 665 | | input_vc_status1: input_vc_statuses[0].clone().unwrap(), [INFO] [stdout] 666 | | input_vc_status2: input_vc_statuses[1].clone().unwrap(), [INFO] [stdout] 667 | | merged_vc_status: output_vc_status, [INFO] [stdout] 668 | | }); [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] 664 ~ Ok(VChannelAction::Merge { [INFO] [stdout] 665 + input_vc_status1: input_vc_statuses[0].clone().unwrap(), [INFO] [stdout] 666 + input_vc_status2: input_vc_statuses[1].clone().unwrap(), [INFO] [stdout] 667 + merged_vc_status: output_vc_status, [INFO] [stdout] 668 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:692:17 [INFO] [stdout] | [INFO] [stdout] 692 | / return Ok(VChannelAction::Progress { [INFO] [stdout] 693 | | old_status: input_vc_status, [INFO] [stdout] 694 | | new_status: output_vc_status, [INFO] [stdout] 695 | | }); [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] 692 ~ Ok(VChannelAction::Progress { [INFO] [stdout] 693 + old_status: input_vc_status, [INFO] [stdout] 694 + new_status: output_vc_status, [INFO] [stdout] 695 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:699:17 [INFO] [stdout] | [INFO] [stdout] 699 | / return Ok(VChannelAction::Close1 { [INFO] [stdout] 700 | | input_vc_status: input_vc_status, [INFO] [stdout] 701 | | output_vc_status: output_vc_status, [INFO] [stdout] 702 | | }); [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] 699 ~ Ok(VChannelAction::Close1 { [INFO] [stdout] 700 + input_vc_status: input_vc_status, [INFO] [stdout] 701 + output_vc_status: output_vc_status, [INFO] [stdout] 702 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:704:18 [INFO] [stdout] | [INFO] [stdout] 704 | _ => return Err(Error::InvalidVCTx), [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] 704 - _ => return Err(Error::InvalidVCTx), [INFO] [stdout] 704 + _ => Err(Error::InvalidVCTx), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:721:9 [INFO] [stdout] | [INFO] [stdout] 721 | / return Ok(VChannelAction::Close2 { [INFO] [stdout] 722 | | input_lc_status: parent_data, [INFO] [stdout] 723 | | input_vc_status: input_vc_status, [INFO] [stdout] 724 | | }); [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] 721 ~ Ok(VChannelAction::Close2 { [INFO] [stdout] 722 + input_lc_status: parent_data, [INFO] [stdout] 723 + input_vc_status: input_vc_status, [INFO] [stdout] 724 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:726:9 [INFO] [stdout] | [INFO] [stdout] 726 | return Err(Error::InvalidVCTx); [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] 726 - return Err(Error::InvalidVCTx); [INFO] [stdout] 726 + Err(Error::InvalidVCTx) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `input_vc_statuses` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:638:18 [INFO] [stdout] | [INFO] [stdout] 638 | for i in 0..2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 638 - for i in 0..2 { [INFO] [stdout] 638 + for (i, ) in input_vc_statuses.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:277:32 [INFO] [stdout] | [INFO] [stdout] 277 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:750:36 [INFO] [stdout] | [INFO] [stdout] 750 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:752:32 [INFO] [stdout] | [INFO] [stdout] 752 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:318:36 [INFO] [stdout] | [INFO] [stdout] 318 | verify_no_locked_funds(&new_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `new_status` [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: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:395:44 [INFO] [stdout] | [INFO] [stdout] 395 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-channel-lockscript/src/lib.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return Ok(()); [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] 76 - return Ok(()); [INFO] [stdout] 76 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:437:36 [INFO] [stdout] | [INFO] [stdout] 437 | verify_no_locked_funds(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-vchannel-lockscript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:532:9 [INFO] [stdout] | [INFO] [stdout] 532 | &vc_status, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:548:28 [INFO] [stdout] | [INFO] [stdout] 548 | verify_no_locked_funds(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:631:19 [INFO] [stdout] | [INFO] [stdout] 631 | let idx_map = match get_idx_map(&vc_status.parents()) { [INFO] [stdout] | ___________________^ [INFO] [stdout] 632 | | Ok(map) => map, [INFO] [stdout] 633 | | Err(err) => return Err(err.into()), [INFO] [stdout] 634 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_idx_map(&vc_status.parents())?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:633:32 [INFO] [stdout] | [INFO] [stdout] 633 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:670:21 [INFO] [stdout] | [INFO] [stdout] 670 | vec![0u128; lc_final_balances.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:672:21 [INFO] [stdout] | [INFO] [stdout] 672 | vec![0u128; lc_final_balances.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:700:21 [INFO] [stdout] | [INFO] [stdout] 700 | input_vc_status: input_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:701:21 [INFO] [stdout] | [INFO] [stdout] 701 | output_vc_status: output_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:723:13 [INFO] [stdout] | [INFO] [stdout] 723 | input_vc_status: input_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:973:8 [INFO] [stdout] | [INFO] [stdout] 973 | if status.state().balances().sudts().len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!status.state().balances().sudts().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: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1135:21 [INFO] [stdout] | [INFO] [stdout] 1135 | vec![0u128; final_balance.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1137:21 [INFO] [stdout] | [INFO] [stdout] 1137 | vec![0u128; final_balance.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1236:5 [INFO] [stdout] | [INFO] [stdout] 1236 | return Ok((sudt_idx, u128::from_le_bytes(buf))); [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] 1236 - return Ok((sudt_idx, u128::from_le_bytes(buf))); [INFO] [stdout] 1236 + Ok((sudt_idx, u128::from_le_bytes(buf))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:700:21 [INFO] [stdout] | [INFO] [stdout] 700 | input_vc_status: input_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:701:21 [INFO] [stdout] | [INFO] [stdout] 701 | output_vc_status: output_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:723:13 [INFO] [stdout] | [INFO] [stdout] 723 | input_vc_status: input_vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-funds-lockscript/src/lib.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return verify_pcts_in_inputs(&pcts_script_hash.unpack()); [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] 40 - return verify_pcts_in_inputs(&pcts_script_hash.unpack()); [INFO] [stdout] 40 + verify_pcts_in_inputs(&pcts_script_hash.unpack()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:9:28 [INFO] [stdout] | [INFO] [stdout] 9 | use core::{result::Result, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:123:26 [INFO] [stdout] | [INFO] [stdout] 123 | verify_vc_sigs_start(&new_vc_status, &vc_channel_constants.params())?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:127:45 [INFO] [stdout] | [INFO] [stdout] 127 | verify_first_forced_closed_flag_not_set(&new_vc_status)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:136:27 [INFO] [stdout] | [INFO] [stdout] 136 | verify_max_one_parent(&new_vc_status)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / match matches.len() { [INFO] [stdout] 156 | | 0 => return Err(Error::InvalidVCTxStart), //Input should contain at least cell belonging to owner [INFO] [stdout] 157 | | _ => (), [INFO] [stdout] 158 | | }; [INFO] [stdout] | |_____^ help: try: `if matches.len() == 0 { return Err(Error::InvalidVCTxStart) }` [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::arch::asm` [INFO] [stdout] --> contracts/perun-channel-lockscript/src/lib.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use core::arch::asm; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:244:28 [INFO] [stdout] | [INFO] [stdout] 244 | let parent_input_idx = match get_parent_of_vc(input_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 245 | | Ok(idx) => idx, [INFO] [stdout] 246 | | Err(e) => return Err(e), [INFO] [stdout] 247 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(input_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:270:28 [INFO] [stdout] | [INFO] [stdout] 270 | let parent_input_idx = match get_parent_of_vc(input_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 271 | | Ok(idx) => idx, [INFO] [stdout] 272 | | Err(e) => return Err(e), [INFO] [stdout] 273 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(input_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:303:8 [INFO] [stdout] | [INFO] [stdout] 303 | if matches.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `matches.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: accessing first element with `matches.get(0)` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:338:14 [INFO] [stdout] | [INFO] [stdout] 338 | 1 => matches.get(0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `matches.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:342:46 [INFO] [stdout] | [INFO] [stdout] 342 | let output_capacity = load_cell_capacity(output_idx.clone(), Source::Output)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*output_idx` [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 `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:426:28 [INFO] [stdout] | [INFO] [stdout] 426 | let parent_input_idx = match get_parent_of_vc(new_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 427 | | Ok(idx) => idx, [INFO] [stdout] 428 | | Err(e) => return Err(e), [INFO] [stdout] 429 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(new_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:510:16 [INFO] [stdout] | [INFO] [stdout] 510 | if let Some(_) = find_cell_by_type_hash(&hash, Source::Input)? { [INFO] [stdout] | -------^^^^^^^------------------------------------------------ help: try: `if find_cell_by_type_hash(&hash, Source::Input)?.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:510:49 [INFO] [stdout] | [INFO] [stdout] 510 | if let Some(_) = find_cell_by_type_hash(&hash, Source::Input)? { [INFO] [stdout] | ^^^^^ help: change this to: `hash` [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: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-channel-typescript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:629:9 [INFO] [stdout] | [INFO] [stdout] 629 | / return Ok(VChannelAction::Start { [INFO] [stdout] 630 | | new_vc_status: vc_status, [INFO] [stdout] 631 | | old_lc_status: parent_input_data, [INFO] [stdout] 632 | | new_lc_status: parent_output_data, [INFO] [stdout] 633 | | }); [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] 629 ~ Ok(VChannelAction::Start { [INFO] [stdout] 630 + new_vc_status: vc_status, [INFO] [stdout] 631 + old_lc_status: parent_input_data, [INFO] [stdout] 632 + new_lc_status: parent_output_data, [INFO] [stdout] 633 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-channel-lockscript/src/lib.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return Ok(()); [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] 76 - return Ok(()); [INFO] [stdout] 76 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:664:9 [INFO] [stdout] | [INFO] [stdout] 664 | / return Ok(VChannelAction::Merge { [INFO] [stdout] 665 | | input_vc_status1: input_vc_statuses[0].clone().unwrap(), [INFO] [stdout] 666 | | input_vc_status2: input_vc_statuses[1].clone().unwrap(), [INFO] [stdout] 667 | | merged_vc_status: output_vc_status, [INFO] [stdout] 668 | | }); [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] 664 ~ Ok(VChannelAction::Merge { [INFO] [stdout] 665 + input_vc_status1: input_vc_statuses[0].clone().unwrap(), [INFO] [stdout] 666 + input_vc_status2: input_vc_statuses[1].clone().unwrap(), [INFO] [stdout] 667 + merged_vc_status: output_vc_status, [INFO] [stdout] 668 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:692:17 [INFO] [stdout] | [INFO] [stdout] 692 | / return Ok(VChannelAction::Progress { [INFO] [stdout] 693 | | old_status: input_vc_status, [INFO] [stdout] 694 | | new_status: output_vc_status, [INFO] [stdout] 695 | | }); [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] 692 ~ Ok(VChannelAction::Progress { [INFO] [stdout] 693 + old_status: input_vc_status, [INFO] [stdout] 694 + new_status: output_vc_status, [INFO] [stdout] 695 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:699:17 [INFO] [stdout] | [INFO] [stdout] 699 | / return Ok(VChannelAction::Close1 { [INFO] [stdout] 700 | | input_vc_status: input_vc_status, [INFO] [stdout] 701 | | output_vc_status: output_vc_status, [INFO] [stdout] 702 | | }); [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] 699 ~ Ok(VChannelAction::Close1 { [INFO] [stdout] 700 + input_vc_status: input_vc_status, [INFO] [stdout] 701 + output_vc_status: output_vc_status, [INFO] [stdout] 702 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:704:18 [INFO] [stdout] | [INFO] [stdout] 704 | _ => return Err(Error::InvalidVCTx), [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] 704 - _ => return Err(Error::InvalidVCTx), [INFO] [stdout] 704 + _ => Err(Error::InvalidVCTx), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:721:9 [INFO] [stdout] | [INFO] [stdout] 721 | / return Ok(VChannelAction::Close2 { [INFO] [stdout] 722 | | input_lc_status: parent_data, [INFO] [stdout] 723 | | input_vc_status: input_vc_status, [INFO] [stdout] 724 | | }); [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] 721 ~ Ok(VChannelAction::Close2 { [INFO] [stdout] 722 + input_lc_status: parent_data, [INFO] [stdout] 723 + input_vc_status: input_vc_status, [INFO] [stdout] 724 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:726:9 [INFO] [stdout] | [INFO] [stdout] 726 | return Err(Error::InvalidVCTx); [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] 726 - return Err(Error::InvalidVCTx); [INFO] [stdout] 726 + Err(Error::InvalidVCTx) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `input_vc_statuses` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:638:18 [INFO] [stdout] | [INFO] [stdout] 638 | for i in 0..2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 638 - for i in 0..2 { [INFO] [stdout] 638 + for (i, ) in input_vc_statuses.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found module declaration for lib.rs [INFO] [stdout] --> contracts/perun-channel-typescript/src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod lib; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: lib.rs is the root of this crate's library target [INFO] [stdout] = help: to refer to it from other targets, use the library's name as the path [INFO] [stdout] = note: `#[warn(special_module_name)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:750:36 [INFO] [stdout] | [INFO] [stdout] 750 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:752:32 [INFO] [stdout] | [INFO] [stdout] 752 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:9:28 [INFO] [stdout] | [INFO] [stdout] 9 | use core::{result::Result, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:123:26 [INFO] [stdout] | [INFO] [stdout] 123 | verify_vc_sigs_start(&new_vc_status, &vc_channel_constants.params())?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:127:45 [INFO] [stdout] | [INFO] [stdout] 127 | verify_first_forced_closed_flag_not_set(&new_vc_status)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:136:27 [INFO] [stdout] | [INFO] [stdout] 136 | verify_max_one_parent(&new_vc_status)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_vc_status` [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: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / match matches.len() { [INFO] [stdout] 156 | | 0 => return Err(Error::InvalidVCTxStart), //Input should contain at least cell belonging to owner [INFO] [stdout] 157 | | _ => (), [INFO] [stdout] 158 | | }; [INFO] [stdout] | |_____^ help: try: `if matches.len() == 0 { return Err(Error::InvalidVCTxStart) }` [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:244:28 [INFO] [stdout] | [INFO] [stdout] 244 | let parent_input_idx = match get_parent_of_vc(input_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 245 | | Ok(idx) => idx, [INFO] [stdout] 246 | | Err(e) => return Err(e), [INFO] [stdout] 247 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(input_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:270:28 [INFO] [stdout] | [INFO] [stdout] 270 | let parent_input_idx = match get_parent_of_vc(input_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 271 | | Ok(idx) => idx, [INFO] [stdout] 272 | | Err(e) => return Err(e), [INFO] [stdout] 273 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(input_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:303:8 [INFO] [stdout] | [INFO] [stdout] 303 | if matches.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `matches.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: accessing first element with `matches.get(0)` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:338:14 [INFO] [stdout] | [INFO] [stdout] 338 | 1 => matches.get(0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `matches.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:342:46 [INFO] [stdout] | [INFO] [stdout] 342 | let output_capacity = load_cell_capacity(output_idx.clone(), Source::Output)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*output_idx` [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 `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:426:28 [INFO] [stdout] | [INFO] [stdout] 426 | let parent_input_idx = match get_parent_of_vc(new_vc_status, Source::Input) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 427 | | Ok(idx) => idx, [INFO] [stdout] 428 | | Err(e) => return Err(e), [INFO] [stdout] 429 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_parent_of_vc(new_vc_status, Source::Input)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:510:16 [INFO] [stdout] | [INFO] [stdout] 510 | if let Some(_) = find_cell_by_type_hash(&hash, Source::Input)? { [INFO] [stdout] | -------^^^^^^^------------------------------------------------ help: try: `if find_cell_by_type_hash(&hash, Source::Input)?.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:510:49 [INFO] [stdout] | [INFO] [stdout] 510 | if let Some(_) = find_cell_by_type_hash(&hash, Source::Input)? { [INFO] [stdout] | ^^^^^ help: change this to: `hash` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:216:38 [INFO] [stdout] | [INFO] [stdout] 216 | verify_status_not_funded(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:629:9 [INFO] [stdout] | [INFO] [stdout] 629 | / return Ok(VChannelAction::Start { [INFO] [stdout] 630 | | new_vc_status: vc_status, [INFO] [stdout] 631 | | old_lc_status: parent_input_data, [INFO] [stdout] 632 | | new_lc_status: parent_output_data, [INFO] [stdout] 633 | | }); [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] 629 ~ Ok(VChannelAction::Start { [INFO] [stdout] 630 + new_vc_status: vc_status, [INFO] [stdout] 631 + old_lc_status: parent_input_data, [INFO] [stdout] 632 + new_lc_status: parent_output_data, [INFO] [stdout] 633 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:664:9 [INFO] [stdout] | [INFO] [stdout] 664 | / return Ok(VChannelAction::Merge { [INFO] [stdout] 665 | | input_vc_status1: input_vc_statuses[0].clone().unwrap(), [INFO] [stdout] 666 | | input_vc_status2: input_vc_statuses[1].clone().unwrap(), [INFO] [stdout] 667 | | merged_vc_status: output_vc_status, [INFO] [stdout] 668 | | }); [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] 664 ~ Ok(VChannelAction::Merge { [INFO] [stdout] 665 + input_vc_status1: input_vc_statuses[0].clone().unwrap(), [INFO] [stdout] 666 + input_vc_status2: input_vc_statuses[1].clone().unwrap(), [INFO] [stdout] 667 + merged_vc_status: output_vc_status, [INFO] [stdout] 668 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:692:17 [INFO] [stdout] | [INFO] [stdout] 692 | / return Ok(VChannelAction::Progress { [INFO] [stdout] 693 | | old_status: input_vc_status, [INFO] [stdout] 694 | | new_status: output_vc_status, [INFO] [stdout] 695 | | }); [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] 692 ~ Ok(VChannelAction::Progress { [INFO] [stdout] 693 + old_status: input_vc_status, [INFO] [stdout] 694 + new_status: output_vc_status, [INFO] [stdout] 695 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:232:34 [INFO] [stdout] | [INFO] [stdout] 232 | verify_funded_status(&new_status, false)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `new_status` [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] --> contracts/perun-vchannel-typescript/src/lib.rs:699:17 [INFO] [stdout] | [INFO] [stdout] 699 | / return Ok(VChannelAction::Close1 { [INFO] [stdout] 700 | | input_vc_status: input_vc_status, [INFO] [stdout] 701 | | output_vc_status: output_vc_status, [INFO] [stdout] 702 | | }); [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] 699 ~ Ok(VChannelAction::Close1 { [INFO] [stdout] 700 + input_vc_status: input_vc_status, [INFO] [stdout] 701 + output_vc_status: output_vc_status, [INFO] [stdout] 702 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:704:18 [INFO] [stdout] | [INFO] [stdout] 704 | _ => return Err(Error::InvalidVCTx), [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] 704 - _ => return Err(Error::InvalidVCTx), [INFO] [stdout] 704 + _ => Err(Error::InvalidVCTx), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:721:9 [INFO] [stdout] | [INFO] [stdout] 721 | / return Ok(VChannelAction::Close2 { [INFO] [stdout] 722 | | input_lc_status: parent_data, [INFO] [stdout] 723 | | input_vc_status: input_vc_status, [INFO] [stdout] 724 | | }); [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] 721 ~ Ok(VChannelAction::Close2 { [INFO] [stdout] 722 + input_lc_status: parent_data, [INFO] [stdout] 723 + input_vc_status: input_vc_status, [INFO] [stdout] 724 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:726:9 [INFO] [stdout] | [INFO] [stdout] 726 | return Err(Error::InvalidVCTx); [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] 726 - return Err(Error::InvalidVCTx); [INFO] [stdout] 726 + Err(Error::InvalidVCTx) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `input_vc_statuses` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:638:18 [INFO] [stdout] | [INFO] [stdout] 638 | for i in 0..2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 638 - for i in 0..2 { [INFO] [stdout] 638 + for (i, ) in input_vc_statuses.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | if !(!old_status.vc_disputed().to_bool() && new_status.vc_disputed().to_bool()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `old_status.vc_disputed().to_bool() || !new_status.vc_disputed().to_bool()` [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] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:750:36 [INFO] [stdout] | [INFO] [stdout] 750 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-vchannel-typescript/src/lib.rs:752:32 [INFO] [stdout] | [INFO] [stdout] 752 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking ckb-dao v0.200.0 [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:216:38 [INFO] [stdout] | [INFO] [stdout] 216 | verify_status_not_funded(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:232:34 [INFO] [stdout] | [INFO] [stdout] 232 | verify_funded_status(&new_status, false)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `new_status` [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: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:277:32 [INFO] [stdout] | [INFO] [stdout] 277 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | if !(!old_status.vc_disputed().to_bool() && new_status.vc_disputed().to_bool()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `old_status.vc_disputed().to_bool() || !new_status.vc_disputed().to_bool()` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:318:36 [INFO] [stdout] | [INFO] [stdout] 318 | verify_no_locked_funds(&new_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `new_status` [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: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:277:32 [INFO] [stdout] | [INFO] [stdout] 277 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:318:36 [INFO] [stdout] | [INFO] [stdout] 318 | verify_no_locked_funds(&new_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `new_status` [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: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:395:44 [INFO] [stdout] | [INFO] [stdout] 395 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:395:44 [INFO] [stdout] | [INFO] [stdout] 395 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:437:36 [INFO] [stdout] | [INFO] [stdout] 437 | verify_no_locked_funds(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:437:36 [INFO] [stdout] | [INFO] [stdout] 437 | verify_no_locked_funds(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:532:9 [INFO] [stdout] | [INFO] [stdout] 532 | &vc_status, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:548:28 [INFO] [stdout] | [INFO] [stdout] 548 | verify_no_locked_funds(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:631:19 [INFO] [stdout] | [INFO] [stdout] 631 | let idx_map = match get_idx_map(&vc_status.parents()) { [INFO] [stdout] | ___________________^ [INFO] [stdout] 632 | | Ok(map) => map, [INFO] [stdout] 633 | | Err(err) => return Err(err.into()), [INFO] [stdout] 634 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_idx_map(&vc_status.parents())?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:633:32 [INFO] [stdout] | [INFO] [stdout] 633 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:670:21 [INFO] [stdout] | [INFO] [stdout] 670 | vec![0u128; lc_final_balances.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:672:21 [INFO] [stdout] | [INFO] [stdout] 672 | vec![0u128; lc_final_balances.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:532:9 [INFO] [stdout] | [INFO] [stdout] 532 | &vc_status, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:548:28 [INFO] [stdout] | [INFO] [stdout] 548 | verify_no_locked_funds(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: length comparison to zero [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:973:8 [INFO] [stdout] | [INFO] [stdout] 973 | if status.state().balances().sudts().len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!status.state().balances().sudts().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: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:631:19 [INFO] [stdout] | [INFO] [stdout] 631 | let idx_map = match get_idx_map(&vc_status.parents()) { [INFO] [stdout] | ___________________^ [INFO] [stdout] 632 | | Ok(map) => map, [INFO] [stdout] 633 | | Err(err) => return Err(err.into()), [INFO] [stdout] 634 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_idx_map(&vc_status.parents())?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:633:32 [INFO] [stdout] | [INFO] [stdout] 633 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:670:21 [INFO] [stdout] | [INFO] [stdout] 670 | vec![0u128; lc_final_balances.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:672:21 [INFO] [stdout] | [INFO] [stdout] 672 | vec![0u128; lc_final_balances.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1135:21 [INFO] [stdout] | [INFO] [stdout] 1135 | vec![0u128; final_balance.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1137:21 [INFO] [stdout] | [INFO] [stdout] 1137 | vec![0u128; final_balance.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1236:5 [INFO] [stdout] | [INFO] [stdout] 1236 | return Ok((sudt_idx, u128::from_le_bytes(buf))); [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] 1236 - return Ok((sudt_idx, u128::from_le_bytes(buf))); [INFO] [stdout] 1236 + Ok((sudt_idx, u128::from_le_bytes(buf))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:973:8 [INFO] [stdout] | [INFO] [stdout] 973 | if status.state().balances().sudts().len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!status.state().balances().sudts().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: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1135:21 [INFO] [stdout] | [INFO] [stdout] 1135 | vec![0u128; final_balance.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1137:21 [INFO] [stdout] | [INFO] [stdout] 1137 | vec![0u128; final_balance.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1236:5 [INFO] [stdout] | [INFO] [stdout] 1236 | return Ok((sudt_idx, u128::from_le_bytes(buf))); [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] 1236 - return Ok((sudt_idx, u128::from_le_bytes(buf))); [INFO] [stdout] 1236 + Ok((sudt_idx, u128::from_le_bytes(buf))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:216:38 [INFO] [stdout] | [INFO] [stdout] 216 | verify_status_not_funded(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:232:34 [INFO] [stdout] | [INFO] [stdout] 232 | verify_funded_status(&new_status, false)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `new_status` [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: this boolean expression can be simplified [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | if !(!old_status.vc_disputed().to_bool() && new_status.vc_disputed().to_bool()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `old_status.vc_disputed().to_bool() || !new_status.vc_disputed().to_bool()` [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] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:277:32 [INFO] [stdout] | [INFO] [stdout] 277 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:318:36 [INFO] [stdout] | [INFO] [stdout] 318 | verify_no_locked_funds(&new_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `new_status` [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: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:395:44 [INFO] [stdout] | [INFO] [stdout] 395 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:437:36 [INFO] [stdout] | [INFO] [stdout] 437 | verify_no_locked_funds(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:532:9 [INFO] [stdout] | [INFO] [stdout] 532 | &vc_status, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `vc_status` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:548:28 [INFO] [stdout] | [INFO] [stdout] 548 | verify_no_locked_funds(&old_status)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_status` [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: this `match` expression can be replaced with `?` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:631:19 [INFO] [stdout] | [INFO] [stdout] 631 | let idx_map = match get_idx_map(&vc_status.parents()) { [INFO] [stdout] | ___________________^ [INFO] [stdout] 632 | | Ok(map) => map, [INFO] [stdout] 633 | | Err(err) => return Err(err.into()), [INFO] [stdout] 634 | | }; [INFO] [stdout] | |_____^ help: try instead: `get_idx_map(&vc_status.parents())?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `perun_common::error::Error` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:633:32 [INFO] [stdout] | [INFO] [stdout] 633 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:670:21 [INFO] [stdout] | [INFO] [stdout] 670 | vec![0u128; lc_final_balances.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:672:21 [INFO] [stdout] | [INFO] [stdout] 672 | vec![0u128; lc_final_balances.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:973:8 [INFO] [stdout] | [INFO] [stdout] 973 | if status.state().balances().sudts().len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!status.state().balances().sudts().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: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1135:21 [INFO] [stdout] | [INFO] [stdout] 1135 | vec![0u128; final_balance.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `usize` [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1137:21 [INFO] [stdout] | [INFO] [stdout] 1137 | vec![0u128; final_balance.sudts().len().try_into().unwrap()].into_boxed_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> contracts/perun-channel-typescript/src/lib.rs:1236:5 [INFO] [stdout] | [INFO] [stdout] 1236 | return Ok((sudt_idx, u128::from_le_bytes(buf))); [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] 1236 - return Ok((sudt_idx, u128::from_le_bytes(buf))); [INFO] [stdout] 1236 + Ok((sudt_idx, u128::from_le_bytes(buf))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking ckb-verification v0.200.0 [INFO] [stderr] Checking ckb-testtool v0.15.1 [INFO] [stderr] Checking tests v0.1.0 (/opt/rustwide/workdir/tests) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | inputs: inputs, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `inputs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | vc_status: vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 228 | sigs: sigs, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `sigs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:252:17 [INFO] [stdout] | [INFO] [stdout] 252 | vc_cell: vc_cell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `vc_cell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:253:17 [INFO] [stdout] | [INFO] [stdout] 253 | vc_status: vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:254:17 [INFO] [stdout] | [INFO] [stdout] 254 | vcts_script: vcts_script, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vcts_script` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:279:17 [INFO] [stdout] | [INFO] [stdout] 279 | vc_cell: vc_cell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `vc_cell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:280:17 [INFO] [stdout] | [INFO] [stdout] 280 | vc_status: vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:282:17 [INFO] [stdout] | [INFO] [stdout] 282 | vcts_script: vcts_script, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vcts_script` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:307:17 [INFO] [stdout] | [INFO] [stdout] 307 | vc_cell: vc_cell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `vc_cell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:308:17 [INFO] [stdout] | [INFO] [stdout] 308 | vc_status: vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:310:17 [INFO] [stdout] | [INFO] [stdout] 310 | vcts_script: vcts_script, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vcts_script` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:335:17 [INFO] [stdout] | [INFO] [stdout] 335 | vc_cell1: vc_cell1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_cell1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:336:17 [INFO] [stdout] | [INFO] [stdout] 336 | vc_cell2: vc_cell2, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_cell2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:338:17 [INFO] [stdout] | [INFO] [stdout] 338 | vc_status1: vc_status1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:339:17 [INFO] [stdout] | [INFO] [stdout] 339 | vc_status2: vc_status2, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:340:17 [INFO] [stdout] | [INFO] [stdout] 340 | vcts_script: vcts_script, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vcts_script` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:450:17 [INFO] [stdout] | [INFO] [stdout] 450 | vc_cell: vc_cell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `vc_cell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:451:17 [INFO] [stdout] | [INFO] [stdout] 451 | vc_status: vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:486:17 [INFO] [stdout] | [INFO] [stdout] 486 | vc_cell: vc_cell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `vc_cell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/test/client.rs:487:17 [INFO] [stdout] | [INFO] [stdout] 487 | vc_status: vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Builder` [INFO] [stdout] --> tests/src/perun/test/cell.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | use molecule::prelude::{Builder, Entity}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | vc_status: vc_status, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vc_status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:158:13 [INFO] [stdout] | [INFO] [stdout] 158 | vcts: vcts, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `vcts` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> tests/src/tests.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | use perun; [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: use of deprecated function `rand::thread_rng`: renamed to `rng` [INFO] [stdout] --> tests/src/perun/test/channel_id.rs:16:25 [INFO] [stdout] | [INFO] [stdout] 16 | ChannelId(rand::thread_rng().gen()) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: renamed to `rng` [INFO] [stdout] --> tests/src/perun/random.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | let mut rng = rand::thread_rng(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | let mut sudt_allocation_builder = SUDTAllocation::new_builder(); [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: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024. [INFO] [stdout] --> tests/src/perun/test/channel_id.rs:16:38 [INFO] [stdout] | [INFO] [stdout] 16 | ChannelId(rand::thread_rng().gen()) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024. [INFO] [stdout] --> tests/src/perun/random.rs:7:31 [INFO] [stdout] | [INFO] [stdout] 7 | let nonce: [u8; 32] = rng.gen(); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sha3::Digest` [INFO] [stdout] --> tests/src/perun/test/funding_agreement.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use sha3::Digest; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `elliptic_curve::sec1::ToEncodedPoint` [INFO] [stdout] --> tests/src/perun/test/keys.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use k256::{ecdsa::VerifyingKey, elliptic_curve::sec1::ToEncodedPoint}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Entity` [INFO] [stdout] --> tests/src/perun/test/cell.rs:6:34 [INFO] [stdout] | [INFO] [stdout] 6 | use molecule::prelude::{Builder, Entity}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `client_index` [INFO] [stdout] --> tests/src/perun/harness.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | client_index: u8, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_index` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `amount` [INFO] [stdout] --> tests/src/perun/channel.rs:256:55 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn send(&mut self, to: &P, amount: u64) -> Result<(), perun::Error> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> tests/src/perun/channel.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | let to = self.parts.get(&to.name()).expect("part not found"); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sudt_alloc` [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:319:13 [INFO] [stdout] | [INFO] [stdout] 319 | let sudt_alloc = sudt_allocation_builder.build(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sudt_alloc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/src/tests.rs:249:13 [INFO] [stdout] | [INFO] [stdout] 249 | let mut context = Rc::new(Mutex::new(RefCell::new(Context::default()))); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/src/tests.rs:2020:17 [INFO] [stdout] | [INFO] [stdout] 2020 | let mut vc_ab = perun::virtual_channel::VirtualChannel::new( [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sample_udt_out_point` and `pfls_script` are never read [INFO] [stdout] --> tests/src/perun/harness.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub struct Env { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 35 | pub sample_udt_out_point: OutPoint, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pfls_script: Script, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_vcts` is never used [INFO] [stdout] --> tests/src/perun/harness.rs:453:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl Env { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 453 | pub fn get_vcts(&self) -> &Script { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `send`, `unset_vc_flag`, and `channel_state` are never used [INFO] [stdout] --> tests/src/perun/channel.rs:256:12 [INFO] [stdout] | [INFO] [stdout] 102 | / impl<'a, S> Channel<'a, S> [INFO] [stdout] 103 | | where [INFO] [stdout] 104 | | S: Default + perun::Applyable + Debug + PartialEq, [INFO] [stdout] | |______________________________________________________- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn send(&mut self, to: &P, amount: u64) -> Result<(), perun::Error> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 451 | pub fn unset_vc_flag(&mut self) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 662 | pub fn channel_state(&self) -> &ChannelStatus { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `id` is never used [INFO] [stdout] --> tests/src/perun/mutators.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn id() -> impl Fn(&ChannelState) -> Result { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `send` is never used [INFO] [stdout] --> tests/src/perun/test/client.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Client { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn send( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_udts` is never used [INFO] [stdout] --> tests/src/perun/test/funding_agreement.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl FundingAgreement { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn has_udts(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `eth_pubkey` is never read [INFO] [stdout] --> tests/src/perun/test/funding_agreement.rs:333:9 [INFO] [stdout] | [INFO] [stdout] 327 | pub struct FundingAgreementEntry { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 333 | pub eth_pubkey: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingAgreementEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `len` and `get_asset` are never used [INFO] [stdout] --> tests/src/perun/test/funding_agreement.rs:380:12 [INFO] [stdout] | [INFO] [stdout] 372 | impl AssetRegister { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 380 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 403 | pub fn get_asset(&self, sudt_asset: SUDTAsset) -> Option<&Asset> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `party_index` is never read [INFO] [stdout] --> tests/src/perun/test/transaction/vc_start.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct VCStartArgs { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub party_index: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VCStartArgs` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `party_index` is never read [INFO] [stdout] --> tests/src/perun/test/transaction/vc_progress_no_update.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct VCProgressNoUpdateArgs { [INFO] [stdout] | ---------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 19 | pub party_index: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `party_index` is never read [INFO] [stdout] --> tests/src/perun/test/transaction/vc_update_only.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct VCUpdateOnlyArgs { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 21 | pub party_index: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `vc_status1` is never read [INFO] [stdout] --> tests/src/perun/test/transaction/vc_merge.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct VCMergeArgs { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 19 | pub vc_status1: VirtualChannelStatus, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `vcts_script` is never read [INFO] [stdout] --> tests/src/perun/test/transaction/vc_close2.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct VCClose2Args { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | pub vcts_script: Script, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `party_index` is never read [INFO] [stdout] --> tests/src/perun/test/transaction/vc_lc_update.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct VCLCUpdateArgs { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub party_index: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `index` and `cap` are never read [INFO] [stdout] --> tests/src/perun/test/cell.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct FundingCellCKBytes { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 19 | // Index of the party whose initial funds are contained in this cell. [INFO] [stdout] 20 | pub index: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 21 | // The amount of funding for the party given by index. [INFO] [stdout] 22 | pub cap: u64, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingCellCKBytes` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `index`, `cap`, `asset`, and `asset_amount` are never read [INFO] [stdout] --> tests/src/perun/test/cell.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct FundingCellSUDT { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 29 | // Index of the party whose initial funds are contained in this cell. [INFO] [stdout] 30 | pub index: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 31 | // The amount of funding for the party given by index. [INFO] [stdout] 32 | pub cap: u64, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub asset: Asset, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 36 | pub asset_amount: u128, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingCellSUDT` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Open`, `Fund`, `Abort`, `Send`, `Close`, and `ForceClose` are never constructed [INFO] [stdout] --> tests/src/perun/action.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum Action [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 7 | Open(S), [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | Fund(S), [INFO] [stdout] | ^^^^ [INFO] [stdout] 9 | Abort(S), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | Send(S), [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | Close(S), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | ForceClose(S), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `eth_pubkey` is never read [INFO] [stdout] --> tests/src/perun/account.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct TestAccount { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub eth_pubkey: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TestAccount` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `eth_address` is never used [INFO] [stdout] --> tests/src/perun/account.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl TestAccount { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn eth_address(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `vcls` and `idx_map` are never read [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct VirtualChannel { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | vcls: Script, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | idx_map: VCIndexMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VirtualChannel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `VirtualChannelToLedgerChannel` is never constructed [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub enum IdxMapDirection { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 47 | LedgerChannelToVirtualChannel, [INFO] [stdout] 48 | VirtualChannelToLedgerChannel, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IdxMapDirection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `vcls` is never used [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:175:12 [INFO] [stdout] | [INFO] [stdout] 80 | impl VirtualChannel { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn vcls(&self) -> &Script { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tests/src/perun/harness.rs:337:9 [INFO] [stdout] | [INFO] [stdout] 337 | return Ok(funds); [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] 337 - return Ok(funds); [INFO] [stdout] 337 + Ok(funds) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `self.create_ckbytes_funds_for_index( [INFO] [stdout] context, [INFO] [stdout] party_index, [INFO] [stdout] self.min_capacity_no_script.as_u64(), [INFO] [stdout] ) [INFO] [stdout] .unwrap().get(0)` [INFO] [stdout] --> tests/src/perun/harness.rs:380:9 [INFO] [stdout] | [INFO] [stdout] 380 | / self.create_ckbytes_funds_for_index( [INFO] [stdout] 381 | | context, [INFO] [stdout] 382 | | party_index, [INFO] [stdout] 383 | | self.min_capacity_no_script.as_u64(), [INFO] [stdout] 384 | | ) [INFO] [stdout] 385 | | .unwrap() [INFO] [stdout] 386 | | .get(0) [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 380 ~ self.create_ckbytes_funds_for_index( [INFO] [stdout] 381 + context, [INFO] [stdout] 382 + party_index, [INFO] [stdout] 383 + self.min_capacity_no_script.as_u64(), [INFO] [stdout] 384 + ) [INFO] [stdout] 385 + .unwrap().first() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessarily eager cloning of iterator items [INFO] [stdout] --> tests/src/perun/channel.rs:492:13 [INFO] [stdout] | [INFO] [stdout] 492 | / self.parts [INFO] [stdout] 493 | | .values() [INFO] [stdout] | | __________________________- [INFO] [stdout] 494 | || .cloned() [INFO] [stdout] 495 | || .find(|c| c.pubkey() == pubkey) [INFO] [stdout] | ||_______________________________________________^ [INFO] [stdout] | |_______________________________________________| [INFO] [stdout] | help: try: `.find(|&c| c.pubkey() == pubkey).cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_overeager_cloned [INFO] [stdout] = note: `#[warn(clippy::iter_overeager_cloned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/perun/test/client.rs:56:43 [INFO] [stdout] | [INFO] [stdout] 56 | keys::verifying_key_to_byte_array(&self.signing_key.verifying_key()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.signing_key.verifying_key()` [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: this function has too many arguments (8/7) [INFO] [stdout] --> tests/src/perun/test/client.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | / pub fn fund( [INFO] [stdout] 139 | | &self, [INFO] [stdout] 140 | | ctx: &mut Context, [INFO] [stdout] 141 | | env: &harness::Env, [INFO] [stdout] ... | [INFO] [stdout] 146 | | pcts: Script, [INFO] [stdout] 147 | | ) -> 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: this function has too many arguments (8/7) [INFO] [stdout] --> tests/src/perun/test/client.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | / pub fn dispute( [INFO] [stdout] 188 | | &self, [INFO] [stdout] 189 | | ctx: &mut Context, [INFO] [stdout] 190 | | env: &harness::Env, [INFO] [stdout] ... | [INFO] [stdout] 195 | | sigs: [Vec; 2], [INFO] [stdout] 196 | | ) -> 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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> tests/src/perun/test/client.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | / pub fn vc_update_only( [INFO] [stdout] 264 | | &self, [INFO] [stdout] 265 | | ctx: &mut Context, [INFO] [stdout] 266 | | env: &harness::Env, [INFO] [stdout] ... | [INFO] [stdout] 271 | | vcts_script: Script, [INFO] [stdout] 272 | | ) -> 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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> tests/src/perun/test/client.rs:291:5 [INFO] [stdout] | [INFO] [stdout] 291 | / pub fn vc_lc_update( [INFO] [stdout] 292 | | &self, [INFO] [stdout] 293 | | ctx: &mut Context, [INFO] [stdout] 294 | | env: &harness::Env, [INFO] [stdout] ... | [INFO] [stdout] 299 | | vcts_script: Script, [INFO] [stdout] 300 | | ) -> 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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> tests/src/perun/test/client.rs:319:5 [INFO] [stdout] | [INFO] [stdout] 319 | / pub fn vc_merge( [INFO] [stdout] 320 | | &self, [INFO] [stdout] 321 | | ctx: &mut Context, [INFO] [stdout] 322 | | env: &harness::Env, [INFO] [stdout] ... | [INFO] [stdout] 328 | | index: u8, [INFO] [stdout] 329 | | ) -> 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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> tests/src/perun/test/client.rs:372:5 [INFO] [stdout] | [INFO] [stdout] 372 | / pub fn close( [INFO] [stdout] 373 | | &self, [INFO] [stdout] 374 | | ctx: &mut Context, [INFO] [stdout] 375 | | env: &harness::Env, [INFO] [stdout] ... | [INFO] [stdout] 380 | | sigs: [Vec; 2], [INFO] [stdout] 381 | | ) -> 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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> tests/src/perun/test/client.rs:425:5 [INFO] [stdout] | [INFO] [stdout] 425 | / pub fn vc_close1( [INFO] [stdout] 426 | | &self, [INFO] [stdout] 427 | | ctx: &mut Context, [INFO] [stdout] 428 | | env: &harness::Env, [INFO] [stdout] ... | [INFO] [stdout] 436 | | vcts: Script, [INFO] [stdout] 437 | | ) -> 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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> tests/src/perun/test/client.rs:461:5 [INFO] [stdout] | [INFO] [stdout] 461 | / pub fn vc_close2( [INFO] [stdout] 462 | | &self, [INFO] [stdout] 463 | | ctx: &mut Context, [INFO] [stdout] 464 | | env: &harness::Env, [INFO] [stdout] ... | [INFO] [stdout] 472 | | vcts: Script, [INFO] [stdout] 473 | | ) -> 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] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> tests/src/perun/test/funding_agreement.rs:348:1 [INFO] [stdout] | [INFO] [stdout] 348 | / impl Default for Asset { [INFO] [stdout] 349 | | fn default() -> Self { [INFO] [stdout] 350 | | Asset(0) [INFO] [stdout] 351 | | } [INFO] [stdout] 352 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 337 + #[derive(Default)] [INFO] [stdout] 338 | pub struct Asset(pub u32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> tests/src/perun/test/funding_agreement.rs:360:1 [INFO] [stdout] | [INFO] [stdout] 360 | / impl Default for EthAsset { [INFO] [stdout] 361 | | fn default() -> Self { [INFO] [stdout] 362 | | EthAsset(0) [INFO] [stdout] 363 | | } [INFO] [stdout] 364 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 340 + #[derive(Default)] [INFO] [stdout] 341 | pub struct EthAsset(pub u32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tests/src/perun/test/funding_agreement.rs:387:9 [INFO] [stdout] | [INFO] [stdout] 387 | return asset; [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] 387 - return asset; [INFO] [stdout] 387 + asset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> tests/src/perun/test/channel_id.rs:19:22 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn to_byte32(&self) -> Byte32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> tests/src/perun/test/channel_id.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | / impl Default for ChannelId { [INFO] [stdout] 35 | | fn default() -> Self { [INFO] [stdout] 36 | | ChannelId([0u8; 32]) [INFO] [stdout] 37 | | } [INFO] [stdout] 38 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 8 + #[derive(Default)] [INFO] [stdout] 9 | pub struct ChannelId([u8; 32]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> tests/src/perun/test/keys.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | / vk.to_encoded_point(true) [INFO] [stdout] 5 | | .as_bytes() [INFO] [stdout] 6 | | .iter() [INFO] [stdout] 7 | | .map(|x| *x) [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 4 ~ vk.to_encoded_point(true) [INFO] [stdout] 5 + .as_bytes() [INFO] [stdout] 6 + .iter().copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> tests/src/perun/test/transaction/abort.rs:56:19 [INFO] [stdout] | [INFO] [stdout] 56 | inputs.extend(args.funds.iter().cloned().map(|op| { [INFO] [stdout] | ___________________^ [INFO] [stdout] 57 | | CellInput::new_builder() [INFO] [stdout] 58 | | .previous_output(op.outpoint()) [INFO] [stdout] 59 | | .build() [INFO] [stdout] 60 | | })); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] = note: `#[warn(clippy::redundant_iter_cloned)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 ~ inputs.extend(args.funds.iter().map(|op| { [INFO] [stdout] 57 + CellInput::new_builder() [INFO] [stdout] 58 + .previous_output(op.outpoint()) [INFO] [stdout] 59 + .build() [INFO] [stdout] 60 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> tests/src/perun/test/transaction/close.rs:59:19 [INFO] [stdout] | [INFO] [stdout] 59 | inputs.extend(args.funds_cells.iter().cloned().map(|f| { [INFO] [stdout] | ___________________^ [INFO] [stdout] 60 | | CellInput::new_builder() [INFO] [stdout] 61 | | .previous_output(f.outpoint()) [INFO] [stdout] 62 | | .build() [INFO] [stdout] 63 | | })); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 59 ~ inputs.extend(args.funds_cells.iter().map(|f| { [INFO] [stdout] 60 + CellInput::new_builder() [INFO] [stdout] 61 + .previous_output(f.outpoint()) [INFO] [stdout] 62 + .build() [INFO] [stdout] 63 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> tests/src/perun/test/transaction/force_close.rs:60:19 [INFO] [stdout] | [INFO] [stdout] 60 | inputs.extend(args.funds_cells.iter().cloned().map(|f| { [INFO] [stdout] | ___________________^ [INFO] [stdout] 61 | | CellInput::new_builder() [INFO] [stdout] 62 | | .previous_output(f.outpoint()) [INFO] [stdout] 63 | | .build() [INFO] [stdout] 64 | | })); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 60 ~ inputs.extend(args.funds_cells.iter().map(|f| { [INFO] [stdout] 61 + CellInput::new_builder() [INFO] [stdout] 62 + .previous_output(f.outpoint()) [INFO] [stdout] 63 + .build() [INFO] [stdout] 64 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> tests/src/perun/test/transaction/vc_close1.rs:63:19 [INFO] [stdout] | [INFO] [stdout] 63 | inputs.extend(args.parent_args.funds_cells.iter().cloned().map(|f| { [INFO] [stdout] | ___________________^ [INFO] [stdout] 64 | | CellInput::new_builder() [INFO] [stdout] 65 | | .previous_output(f.outpoint()) [INFO] [stdout] 66 | | .build() [INFO] [stdout] 67 | | })); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 63 ~ inputs.extend(args.parent_args.funds_cells.iter().map(|f| { [INFO] [stdout] 64 + CellInput::new_builder() [INFO] [stdout] 65 + .previous_output(f.outpoint()) [INFO] [stdout] 66 + .build() [INFO] [stdout] 67 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> tests/src/perun/test/transaction/vc_close2.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | inputs.extend(args.parent_args.funds_cells.iter().cloned().map(|f| { [INFO] [stdout] | ___________________^ [INFO] [stdout] 62 | | CellInput::new_builder() [INFO] [stdout] 63 | | .previous_output(f.outpoint()) [INFO] [stdout] 64 | | .build() [INFO] [stdout] 65 | | })); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 61 ~ inputs.extend(args.parent_args.funds_cells.iter().map(|f| { [INFO] [stdout] 62 + CellInput::new_builder() [INFO] [stdout] 63 + .previous_output(f.outpoint()) [INFO] [stdout] 64 + .build() [INFO] [stdout] 65 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Asset` which implements the `Copy` trait [INFO] [stdout] --> tests/src/perun/test/cell.rs:64:20 [INFO] [stdout] | [INFO] [stdout] 64 | asset: asset.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*asset` [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: the borrowed expression implements the required traits [INFO] [stdout] --> tests/src/perun/account.rs:49:38 [INFO] [stdout] | [INFO] [stdout] 49 | let hash = Keccak256::digest(&self.eth_pub_key()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `self.eth_pub_key()` [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: using `clone` on type `[u8; 2]` which implements the `Copy` trait [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:64:26 [INFO] [stdout] | [INFO] [stdout] 64 | let parent_map = self.get(parent).expect("no parent").clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.get(parent).expect("no parent")` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:66:29 [INFO] [stdout] | [INFO] [stdout] 66 | inverted[parent_map[0 as usize] as usize] = 0; [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:67:29 [INFO] [stdout] | [INFO] [stdout] 67 | inverted[parent_map[1 as usize] as usize] = 1; [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | / pub fn new( [INFO] [stdout] 82 | | context: &mut Context, [INFO] [stdout] 83 | | env: &perun::harness::Env, [INFO] [stdout] 84 | | parts: &[perun::TestAccount], [INFO] [stdout] ... | [INFO] [stdout] 90 | | owner: &Participant, [INFO] [stdout] 91 | | ) -> 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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:103:56 [INFO] [stdout] | [INFO] [stdout] 103 | funding_agreement.mk_participants(context, &env, env.min_capacity_no_script); [INFO] [stdout] | ^^^^ help: change this to: `env` [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: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:121:27 [INFO] [stdout] | [INFO] [stdout] 121 | .nth0(idx_map.parent1[0].clone().into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `idx_map.parent1[0]` [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 `u8` which implements the `Copy` trait [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:122:27 [INFO] [stdout] | [INFO] [stdout] 122 | .nth1(idx_map.parent1[1].clone().into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `idx_map.parent1[1]` [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 `u8` which implements the `Copy` trait [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:130:27 [INFO] [stdout] | [INFO] [stdout] 130 | .nth0(idx_map.parent2[0].clone().into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `idx_map.parent2[0]` [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 `u8` which implements the `Copy` trait [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:131:27 [INFO] [stdout] | [INFO] [stdout] 131 | .nth1(idx_map.parent2[1].clone().into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `idx_map.parent2[1]` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | &funding_agreement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `funding_agreement` [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: using `clone` on type `Byte` which implements the `Copy` trait [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:152:29 [INFO] [stdout] | [INFO] [stdout] 152 | .vcls_hash_type(env.get_vcls_().hash_type().clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `env.get_vcls_().hash_type()` [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: unnecessarily eager cloning of iterator items [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | / self.parts [INFO] [stdout] 217 | | .values() [INFO] [stdout] | | __________________________- [INFO] [stdout] 218 | || .cloned() [INFO] [stdout] 219 | || .find(|c| c.pubkey() == pubkey) [INFO] [stdout] | ||_______________________________________________^ [INFO] [stdout] | |_______________________________________________| [INFO] [stdout] | help: try: `.find(|&c| c.pubkey() == pubkey).cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_overeager_cloned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:282:81 [INFO] [stdout] | [INFO] [stdout] 282 | for (_, vc_sudt_bals) in vc_alloc.balances().sudts().clone().into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 282 - for (_, vc_sudt_bals) in vc_alloc.balances().sudts().clone().into_iter().enumerate() { [INFO] [stdout] 282 + for vc_sudt_bals in vc_alloc.balances().sudts().clone().into_iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> tests/src/perun/virtual_channel.rs:283:78 [INFO] [stdout] | [INFO] [stdout] 283 | for (_, lc_sudt_bals) in s.balances().sudts().clone().into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 283 - for (_, lc_sudt_bals) in s.balances().sudts().clone().into_iter().enumerate() { [INFO] [stdout] 283 + for lc_sudt_bals in s.balances().sudts().clone().into_iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> tests/src/tests.rs:92:49 [INFO] [stdout] | [INFO] [stdout] 92 | let arr20: [Byte; 20] = raw.into_iter().map(|b| Byte::from(b)).collect::>().try_into().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Byte::from` [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: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:918:25 [INFO] [stdout] | [INFO] [stdout] 918 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:925:17 [INFO] [stdout] | [INFO] [stdout] 925 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:926:17 [INFO] [stdout] | [INFO] [stdout] 926 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:929:17 [INFO] [stdout] | [INFO] [stdout] 929 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:935:17 [INFO] [stdout] | [INFO] [stdout] 935 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:940:17 [INFO] [stdout] | [INFO] [stdout] 940 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:1044:25 [INFO] [stdout] | [INFO] [stdout] 1044 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1051:17 [INFO] [stdout] | [INFO] [stdout] 1051 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1052:17 [INFO] [stdout] | [INFO] [stdout] 1052 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1055:17 [INFO] [stdout] | [INFO] [stdout] 1055 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1062:17 [INFO] [stdout] | [INFO] [stdout] 1062 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:1165:25 [INFO] [stdout] | [INFO] [stdout] 1165 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1172:17 [INFO] [stdout] | [INFO] [stdout] 1172 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1173:17 [INFO] [stdout] | [INFO] [stdout] 1173 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1176:17 [INFO] [stdout] | [INFO] [stdout] 1176 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1182:17 [INFO] [stdout] | [INFO] [stdout] 1182 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1187:17 [INFO] [stdout] | [INFO] [stdout] 1187 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:1295:25 [INFO] [stdout] | [INFO] [stdout] 1295 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1302:17 [INFO] [stdout] | [INFO] [stdout] 1302 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1303:17 [INFO] [stdout] | [INFO] [stdout] 1303 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1306:17 [INFO] [stdout] | [INFO] [stdout] 1306 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1312:17 [INFO] [stdout] | [INFO] [stdout] 1312 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1317:17 [INFO] [stdout] | [INFO] [stdout] 1317 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:1433:25 [INFO] [stdout] | [INFO] [stdout] 1433 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1440:17 [INFO] [stdout] | [INFO] [stdout] 1440 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1441:17 [INFO] [stdout] | [INFO] [stdout] 1441 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1444:17 [INFO] [stdout] | [INFO] [stdout] 1444 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1450:17 [INFO] [stdout] | [INFO] [stdout] 1450 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1455:17 [INFO] [stdout] | [INFO] [stdout] 1455 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: accessing first element with `owner_participants1.get(0)` [INFO] [stdout] --> tests/src/tests.rs:1575:31 [INFO] [stdout] | [INFO] [stdout] 1575 | let owner_alice = owner_participants1.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants1.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1582:17 [INFO] [stdout] | [INFO] [stdout] 1582 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1583:17 [INFO] [stdout] | [INFO] [stdout] 1583 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1586:17 [INFO] [stdout] | [INFO] [stdout] 1586 | &owner_alice, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `owner_alice` [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: accessing first element with `owner_participants1.get(0)` [INFO] [stdout] --> tests/src/tests.rs:1594:29 [INFO] [stdout] | [INFO] [stdout] 1594 | let owner_bob = owner_participants1.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants1.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1600:17 [INFO] [stdout] | [INFO] [stdout] 1600 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1601:17 [INFO] [stdout] | [INFO] [stdout] 1601 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1604:17 [INFO] [stdout] | [INFO] [stdout] 1604 | &owner_bob, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `owner_bob` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1610:17 [INFO] [stdout] | [INFO] [stdout] 1610 | vc_ab_1.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab_1.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1615:17 [INFO] [stdout] | [INFO] [stdout] 1615 | vc_ab_2.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab_2.id()` [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: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:1730:25 [INFO] [stdout] | [INFO] [stdout] 1730 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1737:17 [INFO] [stdout] | [INFO] [stdout] 1737 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1738:17 [INFO] [stdout] | [INFO] [stdout] 1738 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1741:17 [INFO] [stdout] | [INFO] [stdout] 1741 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1747:17 [INFO] [stdout] | [INFO] [stdout] 1747 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1752:17 [INFO] [stdout] | [INFO] [stdout] 1752 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:1774:53 [INFO] [stdout] | [INFO] [stdout] 1774 | idx_map: idx_map.clone().invert_map(0 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:1879:25 [INFO] [stdout] | [INFO] [stdout] 1879 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1886:17 [INFO] [stdout] | [INFO] [stdout] 1886 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1887:17 [INFO] [stdout] | [INFO] [stdout] 1887 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:1890:17 [INFO] [stdout] | [INFO] [stdout] 1890 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1896:17 [INFO] [stdout] | [INFO] [stdout] 1896 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:1901:17 [INFO] [stdout] | [INFO] [stdout] 1901 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:2018:25 [INFO] [stdout] | [INFO] [stdout] 2018 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2025:17 [INFO] [stdout] | [INFO] [stdout] 2025 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2026:17 [INFO] [stdout] | [INFO] [stdout] 2026 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2029:17 [INFO] [stdout] | [INFO] [stdout] 2029 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2035:17 [INFO] [stdout] | [INFO] [stdout] 2035 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:2139:25 [INFO] [stdout] | [INFO] [stdout] 2139 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2146:17 [INFO] [stdout] | [INFO] [stdout] 2146 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2147:17 [INFO] [stdout] | [INFO] [stdout] 2147 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2150:17 [INFO] [stdout] | [INFO] [stdout] 2150 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2156:17 [INFO] [stdout] | [INFO] [stdout] 2156 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2161:17 [INFO] [stdout] | [INFO] [stdout] 2161 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2183:53 [INFO] [stdout] | [INFO] [stdout] 2183 | idx_map: idx_map.clone().invert_map(0 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2192:53 [INFO] [stdout] | [INFO] [stdout] 2192 | idx_map: idx_map.clone().invert_map(1 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:2296:25 [INFO] [stdout] | [INFO] [stdout] 2296 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2303:17 [INFO] [stdout] | [INFO] [stdout] 2303 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2304:17 [INFO] [stdout] | [INFO] [stdout] 2304 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2307:17 [INFO] [stdout] | [INFO] [stdout] 2307 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2313:17 [INFO] [stdout] | [INFO] [stdout] 2313 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2318:17 [INFO] [stdout] | [INFO] [stdout] 2318 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2331:53 [INFO] [stdout] | [INFO] [stdout] 2331 | idx_map: idx_map.clone().invert_map(0 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2340:53 [INFO] [stdout] | [INFO] [stdout] 2340 | idx_map: idx_map.clone().invert_map(1 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owner_participants.get(0)` [INFO] [stdout] --> tests/src/tests.rs:2468:25 [INFO] [stdout] | [INFO] [stdout] 2468 | let owner = owner_participants.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2475:17 [INFO] [stdout] | [INFO] [stdout] 2475 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2476:17 [INFO] [stdout] | [INFO] [stdout] 2476 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2479:17 [INFO] [stdout] | [INFO] [stdout] 2479 | &owner, [INFO] [stdout] | ^^^^^^ help: change this to: `owner` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2485:17 [INFO] [stdout] | [INFO] [stdout] 2485 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2490:17 [INFO] [stdout] | [INFO] [stdout] 2490 | vc_ab.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab.id()` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2512:53 [INFO] [stdout] | [INFO] [stdout] 2512 | idx_map: idx_map.clone().invert_map(0 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2521:53 [INFO] [stdout] | [INFO] [stdout] 2521 | idx_map: idx_map.clone().invert_map(1 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owner_participants1.get(0)` [INFO] [stdout] --> tests/src/tests.rs:2626:31 [INFO] [stdout] | [INFO] [stdout] 2626 | let owner_alice = owner_participants1.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants1.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2633:17 [INFO] [stdout] | [INFO] [stdout] 2633 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2634:17 [INFO] [stdout] | [INFO] [stdout] 2634 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2637:17 [INFO] [stdout] | [INFO] [stdout] 2637 | &owner_alice, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `owner_alice` [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: accessing first element with `owner_participants1.get(0)` [INFO] [stdout] --> tests/src/tests.rs:2645:29 [INFO] [stdout] | [INFO] [stdout] 2645 | let owner_bob = owner_participants1.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants1.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2651:17 [INFO] [stdout] | [INFO] [stdout] 2651 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2652:17 [INFO] [stdout] | [INFO] [stdout] 2652 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2655:17 [INFO] [stdout] | [INFO] [stdout] 2655 | &owner_bob, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `owner_bob` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2661:17 [INFO] [stdout] | [INFO] [stdout] 2661 | vc_ab_1.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab_1.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2666:17 [INFO] [stdout] | [INFO] [stdout] 2666 | vc_ab_2.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab_2.id()` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2702:53 [INFO] [stdout] | [INFO] [stdout] 2702 | idx_map: idx_map.clone().invert_map(0 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2711:53 [INFO] [stdout] | [INFO] [stdout] 2711 | idx_map: idx_map.clone().invert_map(1 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owner_participants1.get(0)` [INFO] [stdout] --> tests/src/tests.rs:2840:31 [INFO] [stdout] | [INFO] [stdout] 2840 | let owner_alice = owner_participants1.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants1.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2847:17 [INFO] [stdout] | [INFO] [stdout] 2847 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2848:17 [INFO] [stdout] | [INFO] [stdout] 2848 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2851:17 [INFO] [stdout] | [INFO] [stdout] 2851 | &owner_alice, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `owner_alice` [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: accessing first element with `owner_participants1.get(0)` [INFO] [stdout] --> tests/src/tests.rs:2859:29 [INFO] [stdout] | [INFO] [stdout] 2859 | let owner_bob = owner_participants1.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `owner_participants1.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2865:17 [INFO] [stdout] | [INFO] [stdout] 2865 | &chan_ai, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_ai` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2866:17 [INFO] [stdout] | [INFO] [stdout] 2866 | &chan_bi, [INFO] [stdout] | ^^^^^^^^ help: change this to: `chan_bi` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/src/tests.rs:2869:17 [INFO] [stdout] | [INFO] [stdout] 2869 | &owner_bob, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `owner_bob` [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: using `clone` on type `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2876:17 [INFO] [stdout] | [INFO] [stdout] 2876 | vc_ab_1.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab_1.id()` [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 `ChannelId` which implements the `Copy` trait [INFO] [stdout] --> tests/src/tests.rs:2881:17 [INFO] [stdout] | [INFO] [stdout] 2881 | vc_ab_2.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*vc_ab_2.id()` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2915:53 [INFO] [stdout] | [INFO] [stdout] 2915 | idx_map: idx_map.clone().invert_map(0 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> tests/src/tests.rs:2924:53 [INFO] [stdout] | [INFO] [stdout] 2924 | idx_map: idx_map.clone().invert_map(1 as usize), [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> tests/src/perun/test/transaction/vc_update_only.rs:107:23 [INFO] [stdout] | [INFO] [stdout] 107 | let witness_vec = vec![ [INFO] [stdout] | _______________________^ [INFO] [stdout] 108 | | (lc_dispute_action.clone(), lc_dispute_action.as_bytes()), [INFO] [stdout] 109 | | (vc_dispute_action.clone(), vc_dispute_action.as_bytes()), [INFO] [stdout] 110 | | ]; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 107 ~ let witness_vec = [(lc_dispute_action.clone(), lc_dispute_action.as_bytes()), [INFO] [stdout] 108 ~ (vc_dispute_action.clone(), vc_dispute_action.as_bytes())]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> tests/src/perun/test/transaction/vc_lc_update.rs:108:23 [INFO] [stdout] | [INFO] [stdout] 108 | let witness_vec = vec![ [INFO] [stdout] | _______________________^ [INFO] [stdout] 109 | | (lc_dispute_action.clone(), lc_dispute_action.as_bytes()), [INFO] [stdout] 110 | | (vc_dispute_action.clone(), vc_dispute_action.as_bytes()), [INFO] [stdout] 111 | | ]; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 108 ~ let witness_vec = [(lc_dispute_action.clone(), lc_dispute_action.as_bytes()), [INFO] [stdout] 109 ~ (vc_dispute_action.clone(), vc_dispute_action.as_bytes())]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 42s [INFO] running `Command { std: "docker" "inspect" "34e502e9d9715458a8e33666f64057ce3b63772c2127077a62655344f785746c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "34e502e9d9715458a8e33666f64057ce3b63772c2127077a62655344f785746c", kill_on_drop: false }` [INFO] [stdout] 34e502e9d9715458a8e33666f64057ce3b63772c2127077a62655344f785746c