[INFO] cloning repository https://github.com/sidharthsunilkumar/ocpt [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sidharthsunilkumar/ocpt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidharthsunilkumar%2Focpt", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidharthsunilkumar%2Focpt'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c724e39cec82eabe597a90efcd2e6044cda710cd [INFO] linting sidharthsunilkumar/ocpt against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidharthsunilkumar%2Focpt" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/sidharthsunilkumar/ocpt [INFO] finished tweaking git repo https://github.com/sidharthsunilkumar/ocpt [INFO] tweaked toml for git repo https://github.com/sidharthsunilkumar/ocpt written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/sidharthsunilkumar/ocpt 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/sidharthsunilkumar/ocpt 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] Locking 117 packages to latest Rust 1.96.0-nightly compatible versions [INFO] [stderr] Adding anyhow v1.0.102 [INFO] [stderr] Adding base64 v0.22.1 [INFO] [stderr] Adding bitflags v1.3.2 [INFO] [stderr] Adding bytemuck v1.25.0 [INFO] [stderr] Adding byteorder v1.5.0 [INFO] [stderr] Adding color_quant v1.1.0 [INFO] [stderr] Adding core-foundation v0.9.4 [INFO] [stderr] Adding core-graphics v0.23.2 [INFO] [stderr] Adding core-graphics-types v0.1.3 [INFO] [stderr] Adding core-text v20.1.0 [INFO] [stderr] Adding crc32fast v1.5.0 [INFO] [stderr] Adding csv v1.4.0 [INFO] [stderr] Adding csv-core v0.1.13 [INFO] [stderr] Adding darling v0.23.0 [INFO] [stderr] Adding darling_core v0.23.0 [INFO] [stderr] Adding darling_macro v0.23.0 [INFO] [stderr] Updating deranged v0.4.0 -> v0.5.8 [INFO] [stderr] Adding dirs v6.0.0 [INFO] [stderr] Adding dirs-sys v0.5.0 [INFO] [stderr] Adding dlib v0.5.3 [INFO] [stderr] Adding dwrote v0.11.5 [INFO] [stderr] Adding dyn-clone v1.0.20 [INFO] [stderr] Adding encoding_rs v0.8.35 [INFO] [stderr] Adding errno v0.3.14 [INFO] [stderr] Adding fastrand v2.3.0 [INFO] [stderr] Adding fdeflate v0.3.7 [INFO] [stderr] Adding fixedbitset v0.5.7 [INFO] [stderr] Adding flate2 v1.1.9 [INFO] [stderr] Adding float-ord v0.3.2 [INFO] [stderr] Adding foldhash v0.1.5 [INFO] [stderr] Adding font-kit v0.14.3 [INFO] [stderr] Adding foreign-types v0.5.0 [INFO] [stderr] Adding foreign-types-macros v0.2.3 [INFO] [stderr] Adding foreign-types-shared v0.3.1 [INFO] [stderr] Adding freetype-sys v0.20.1 [INFO] [stderr] Adding getrandom v0.4.2 [INFO] [stderr] Adding gif v0.12.0 [INFO] [stderr] Adding heck v0.5.0 [INFO] [stderr] Adding hex v0.4.3 [INFO] [stderr] Adding id-arena v2.3.0 [INFO] [stderr] Adding ident_case v1.0.1 [INFO] [stderr] Adding image v0.24.9 [INFO] [stderr] Adding jpeg-decoder v0.3.2 [INFO] [stderr] Adding lazy_static v1.5.0 [INFO] [stderr] Adding leb128fmt v0.1.0 [INFO] [stderr] Adding libloading v0.8.9 [INFO] [stderr] Adding libredox v0.1.14 [INFO] [stderr] Adding linux-raw-sys v0.11.0 [INFO] [stderr] Adding macros_process_mining v0.4.4 [INFO] [stderr] Adding multer v3.1.0 [INFO] [stderr] Updating num-conv v0.1.0 -> v0.2.0 [INFO] [stderr] Adding option-ext v0.2.0 [INFO] [stderr] Adding ordered-float v5.1.0 [INFO] [stderr] Adding pathfinder_geometry v0.5.1 [INFO] [stderr] Adding pathfinder_simd v0.5.5 [INFO] [stderr] Adding petgraph v0.8.3 [INFO] [stderr] Adding pkg-config v0.3.32 [INFO] [stderr] Adding plotters v0.3.7 [INFO] [stderr] Adding plotters-backend v0.3.7 [INFO] [stderr] Adding plotters-bitmap v0.3.7 [INFO] [stderr] Adding plotters-svg v0.3.7 [INFO] [stderr] Adding png v0.17.16 [INFO] [stderr] Adding prettyplease v0.2.37 [INFO] [stderr] Adding process_mining v0.4.4 (available: v0.5.3) [INFO] [stderr] Adding quick-xml v0.37.5 [INFO] [stderr] Adding r-efi v6.0.0 [INFO] [stderr] Adding redox_users v0.5.2 [INFO] [stderr] Adding ref-cast v1.0.25 [INFO] [stderr] Adding ref-cast-impl v1.0.25 [INFO] [stderr] Adding rustc_version v0.4.1 [INFO] [stderr] Adding rustix v1.1.2 (available: v1.1.4) [INFO] [stderr] Adding same-file v1.0.6 [INFO] [stderr] Adding schemars v0.9.0 [INFO] [stderr] Adding schemars v1.2.1 [INFO] [stderr] Adding schemars_derive v1.2.1 [INFO] [stderr] Adding semver v1.0.27 [INFO] [stderr] Updating serde v1.0.219 -> v1.0.228 [INFO] [stderr] Adding serde_core v1.0.228 [INFO] [stderr] Updating serde_derive v1.0.219 -> v1.0.228 [INFO] [stderr] Adding serde_derive_internals v0.29.1 [INFO] [stderr] Updating serde_json v1.0.140 -> v1.0.149 [INFO] [stderr] Adding serde_with v3.18.0 [INFO] [stderr] Adding serde_with_macros v3.18.0 [INFO] [stderr] Adding simd-adler32 v0.3.8 [INFO] [stderr] Adding spin v0.9.8 [INFO] [stderr] Adding strsim v0.11.1 [INFO] [stderr] Updating syn v2.0.101 -> v2.0.117 [INFO] [stderr] Adding tempfile v3.23.0 (available: v3.27.0) [INFO] [stderr] Adding thiserror v2.0.18 [INFO] [stderr] Adding thiserror-impl v2.0.18 [INFO] [stderr] Updating time v0.3.41 -> v0.3.47 [INFO] [stderr] Updating time-core v0.1.4 -> v0.1.8 [INFO] [stderr] Updating time-macros v0.2.22 -> v0.2.27 [INFO] [stderr] Adding ttf-parser v0.20.0 [INFO] [stderr] Adding unicode-xid v0.2.6 [INFO] [stderr] Adding uuid v1.22.0 [INFO] [stderr] Adding walkdir v2.5.0 [INFO] [stderr] Adding wasip2 v1.0.2+wasi-0.2.9 [INFO] [stderr] Adding wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06 [INFO] [stderr] Adding wasm-encoder v0.244.0 [INFO] [stderr] Adding wasm-metadata v0.244.0 [INFO] [stderr] Adding wasmparser v0.244.0 [INFO] [stderr] Adding web-sys v0.3.77 (available: v0.3.91) [INFO] [stderr] Adding weezl v0.1.12 [INFO] [stderr] Adding winapi v0.3.9 [INFO] [stderr] Adding winapi-i686-pc-windows-gnu v0.4.0 [INFO] [stderr] Adding winapi-x86_64-pc-windows-gnu v0.4.0 [INFO] [stderr] Adding windows-link v0.2.1 [INFO] [stderr] Adding wio v0.2.2 [INFO] [stderr] Adding wit-bindgen v0.51.0 [INFO] [stderr] Adding wit-bindgen-core v0.51.0 [INFO] [stderr] Adding wit-bindgen-rust v0.51.0 [INFO] [stderr] Adding wit-bindgen-rust-macro v0.51.0 [INFO] [stderr] Adding wit-component v0.244.0 [INFO] [stderr] Adding wit-parser v0.244.0 [INFO] [stderr] Adding yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Adding zmij v1.0.21 [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded priority-queue v1.4.0 [INFO] [stderr] Downloaded macros_process_mining v0.4.4 [INFO] [stderr] Downloaded process_mining v0.4.4 [INFO] [stderr] Downloaded cc v1.2.25 [INFO] [stderr] Downloaded rustworkx-core v0.14.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 56aaabc71ad761f4a516bf52d9ad8346c5b7dd30aa2f2d1a1c0cb89922bd3749 [INFO] running `Command { std: "docker" "start" "-a" "56aaabc71ad761f4a516bf52d9ad8346c5b7dd30aa2f2d1a1c0cb89922bd3749", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "56aaabc71ad761f4a516bf52d9ad8346c5b7dd30aa2f2d1a1c0cb89922bd3749", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "56aaabc71ad761f4a516bf52d9ad8346c5b7dd30aa2f2d1a1c0cb89922bd3749", kill_on_drop: false }` [INFO] [stdout] 56aaabc71ad761f4a516bf52d9ad8346c5b7dd30aa2f2d1a1c0cb89922bd3749 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 1b3b154225126cdf0435d6a479b6972b86200bfbd7f3572630cbb989f3efc495 [INFO] running `Command { std: "docker" "start" "-a" "1b3b154225126cdf0435d6a479b6972b86200bfbd7f3572630cbb989f3efc495", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking crc32fast v1.5.0 [INFO] [stderr] Checking miniz_oxide v0.8.8 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling cc v1.2.25 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking rayon-core v1.12.1 [INFO] [stderr] Compiling pathfinder_simd v0.5.5 [INFO] [stderr] Checking hashbrown v0.15.3 [INFO] [stderr] Compiling yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking getrandom v0.4.2 [INFO] [stderr] Checking libloading v0.8.9 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Checking dlib v0.5.3 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Compiling priority-queue v1.4.0 [INFO] [stderr] Checking jpeg-decoder v0.3.2 [INFO] [stderr] Compiling font-kit v0.14.3 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Checking dyn-clone v1.0.20 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Checking gif v0.12.0 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Checking dirs v6.0.0 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking csv-core v0.1.13 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking float-ord v0.3.2 [INFO] [stderr] Checking pathfinder_geometry v0.5.1 [INFO] [stderr] Checking fixedbitset v0.5.7 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking rand_pcg v0.3.1 [INFO] [stderr] Checking ordered-float v5.1.0 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking quick-xml v0.37.5 [INFO] [stderr] Checking matchit v0.7.3 [INFO] [stderr] Checking ttf-parser v0.20.0 [INFO] [stderr] Checking tower-http v0.5.2 [INFO] [stderr] Compiling freetype-sys v0.20.1 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking tempfile v3.23.0 [INFO] [stderr] Checking simplelog v0.12.2 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rayon-cond v0.3.0 [INFO] [stderr] Checking uuid v1.22.0 [INFO] [stderr] Checking csv v1.4.0 [INFO] [stderr] Checking plotters-bitmap v0.3.7 [INFO] [stderr] Checking petgraph v0.8.3 [INFO] [stderr] Checking petgraph v0.6.5 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Checking rustworkx-core v0.14.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling macros_process_mining v0.4.4 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Checking ref-cast v1.0.25 [INFO] [stderr] Checking axum-core v0.4.5 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling serde_with_macros v3.18.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking serde_path_to_error v0.1.17 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking schemars v1.2.1 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking serde_with v3.18.0 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking hyper-util v0.1.12 [INFO] [stderr] Checking axum v0.7.9 [INFO] [stderr] Checking process_mining v0.4.4 [INFO] [stderr] Checking dfg_visualizer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `json_to_process_forest` [INFO] [stdout] --> src/main.rs:1:62 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::format_conversion::{from_json_value, json_to_dfg, json_to_process_forest, process_forest_to_json, json_to_cost_to_add_edges}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::env; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::NaiveDateTime` [INFO] [stdout] --> src/divergence_free_dfg.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use chrono::NaiveDateTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/divergence_free_dfg.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/divergence_free_dfg.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/divergence_free_dfg.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CutSuggestionsList` [INFO] [stdout] --> src/format_conversion.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::types::{CutSuggestionsList, Edge, Graph, Node, ProcessForest}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Value` and `json` [INFO] [stdout] --> src/format_conversion.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use serde_json::{json, Value}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:1:42 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cost_to_cut::to_be_non_reachable` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::cost_to_cut::to_be_non_reachable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_parallel_cut::best_parallel_cut` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::best_parallel_cut::best_parallel_cut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_parallel_cut_exhaustive::best_parallel_cut_exhaustive` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::best_parallel_cut_exhaustive::best_parallel_cut_exhaustive; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_parallel_cut_v2::best_parallel_cut_v2` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::best_parallel_cut_v2::best_parallel_cut_v2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_parallel_cut_v3::best_parallel_cut_v3` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::best_parallel_cut_v3::best_parallel_cut_v3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_sequence_cut_v2` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::best_sequence_cut_v2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cost_to_add::cost_of_adding_edge` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::cost_to_add::cost_of_adding_edge; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cost_to_cut::to_be_non_reachable` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::cost_to_cut::to_be_non_reachable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::good_cuts::best_possible_sequence_cut` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::good_cuts::best_possible_sequence_cut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | if (!excl_set1.is_empty() [INFO] [stdout] | ^ [INFO] [stdout] 53 | && !excl_set2.is_empty() [INFO] [stdout] 54 | && is_exclusive_possible) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 52 ~ if !excl_set1.is_empty() [INFO] [stdout] 53 | && !excl_set2.is_empty() [INFO] [stdout] 54 ~ && is_exclusive_possible [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | if (!seq_set1.is_empty() [INFO] [stdout] | ^ [INFO] [stdout] 81 | && !seq_set2.is_empty() [INFO] [stdout] 82 | && is_sequence_possible) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 ~ if !seq_set1.is_empty() [INFO] [stdout] 81 | && !seq_set2.is_empty() [INFO] [stdout] 82 ~ && is_sequence_possible [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:108:8 [INFO] [stdout] | [INFO] [stdout] 108 | if (is_parallel [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 111 | && parallel_condition_passed) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 108 ~ if is_parallel [INFO] [stdout] 109 | && !para_set1.is_empty() [INFO] [stdout] 110 | && !para_set2.is_empty() [INFO] [stdout] 111 ~ && parallel_condition_passed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | if (is_redo [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 151 | && redo_condition_passed) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 148 ~ if is_redo [INFO] [stdout] 149 | && !redo_set2.is_empty() [INFO] [stdout] 150 | && !redo_set1.is_empty() [INFO] [stdout] 151 ~ && redo_condition_passed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:231:8 [INFO] [stdout] | [INFO] [stdout] 231 | if (be_set1.is_empty() || be_set2.is_empty()){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 231 - if (be_set1.is_empty() || be_set2.is_empty()){ [INFO] [stdout] 231 + if be_set1.is_empty() || be_set2.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:235:12 [INFO] [stdout] | [INFO] [stdout] 235 | if (!is_exclusive) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 235 - if (!is_exclusive) { [INFO] [stdout] 235 + if !is_exclusive { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:427:8 [INFO] [stdout] | [INFO] [stdout] 427 | if (!excl_set1.is_empty() [INFO] [stdout] | ^ [INFO] [stdout] 428 | && !excl_set2.is_empty() [INFO] [stdout] 429 | && is_exclusive_possible) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 427 ~ if !excl_set1.is_empty() [INFO] [stdout] 428 | && !excl_set2.is_empty() [INFO] [stdout] 429 ~ && is_exclusive_possible [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:455:8 [INFO] [stdout] | [INFO] [stdout] 455 | if (!seq_set1.is_empty() [INFO] [stdout] | ^ [INFO] [stdout] 456 | && !seq_set2.is_empty() [INFO] [stdout] 457 | && is_sequence_possible) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 455 ~ if !seq_set1.is_empty() [INFO] [stdout] 456 | && !seq_set2.is_empty() [INFO] [stdout] 457 ~ && is_sequence_possible [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:483:8 [INFO] [stdout] | [INFO] [stdout] 483 | if (is_parallel [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 486 | && parallel_condition_passed) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 483 ~ if is_parallel [INFO] [stdout] 484 | && !para_set1.is_empty() [INFO] [stdout] 485 | && !para_set2.is_empty() [INFO] [stdout] 486 ~ && parallel_condition_passed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:523:8 [INFO] [stdout] | [INFO] [stdout] 523 | if (is_redo [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 526 | && redo_condition_passed) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 523 ~ if is_redo [INFO] [stdout] 524 | && !redo_set2.is_empty() [INFO] [stdout] 525 | && !redo_set1.is_empty() [INFO] [stdout] 526 ~ && redo_condition_passed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:662:16 [INFO] [stdout] | [INFO] [stdout] 662 | if (r1 || r2) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 662 - if (r1 || r2) { [INFO] [stdout] 662 + if r1 || r2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:1015:19 [INFO] [stdout] | [INFO] [stdout] 1015 | } else if (!is_s1_redo && is_s2_redo) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1015 - } else if (!is_s1_redo && is_s2_redo) { [INFO] [stdout] 1015 + } else if !is_s1_redo && is_s2_redo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashMap` [INFO] [stdout] --> src/conformance_types.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `json_to_process_forest` [INFO] [stdout] --> src/main.rs:1:62 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::format_conversion::{from_json_value, json_to_dfg, json_to_process_forest, process_forest_to_json, json_to_cost_to_add_edges}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::env; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/best_exclusive_cut.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/best_parallel_cut.rs:217:23 [INFO] [stdout] | [INFO] [stdout] 217 | } else if (new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len())) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 217 - } else if (new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len())) { [INFO] [stdout] 217 + } else if new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::NaiveDateTime` [INFO] [stdout] --> src/divergence_free_dfg.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use chrono::NaiveDateTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/divergence_free_dfg.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/divergence_free_dfg.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/divergence_free_dfg.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CutSuggestionsList` [INFO] [stdout] --> src/format_conversion.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::types::{CutSuggestionsList, Edge, Graph, Node, ProcessForest}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Value` and `json` [INFO] [stdout] --> src/format_conversion.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use serde_json::{json, Value}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cost_to_add` [INFO] [stdout] --> src/best_redo_cuts.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{cost_to_add, cost_to_cut::is_reachable}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/best_redo_cuts.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:1:42 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cost_to_cut::to_be_non_reachable` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::cost_to_cut::to_be_non_reachable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/best_sequence_cut.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/cost_to_add.rs:2:14 [INFO] [stdout] | [INFO] [stdout] 2 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_parallel_cut::best_parallel_cut` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::best_parallel_cut::best_parallel_cut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_parallel_cut_exhaustive::best_parallel_cut_exhaustive` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::best_parallel_cut_exhaustive::best_parallel_cut_exhaustive; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_parallel_cut_v2::best_parallel_cut_v2` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::best_parallel_cut_v2::best_parallel_cut_v2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_parallel_cut_v3::best_parallel_cut_v3` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::best_parallel_cut_v3::best_parallel_cut_v3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::best_sequence_cut_v2` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::best_sequence_cut_v2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cost_to_add::cost_of_adding_edge` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::cost_to_add::cost_of_adding_edge; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cost_to_cut::to_be_non_reachable` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::cost_to_cut::to_be_non_reachable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::good_cuts::best_possible_sequence_cut` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::good_cuts::best_possible_sequence_cut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | if (!excl_set1.is_empty() [INFO] [stdout] | ^ [INFO] [stdout] 53 | && !excl_set2.is_empty() [INFO] [stdout] 54 | && is_exclusive_possible) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 52 ~ if !excl_set1.is_empty() [INFO] [stdout] 53 | && !excl_set2.is_empty() [INFO] [stdout] 54 ~ && is_exclusive_possible [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | if (!seq_set1.is_empty() [INFO] [stdout] | ^ [INFO] [stdout] 81 | && !seq_set2.is_empty() [INFO] [stdout] 82 | && is_sequence_possible) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 ~ if !seq_set1.is_empty() [INFO] [stdout] 81 | && !seq_set2.is_empty() [INFO] [stdout] 82 ~ && is_sequence_possible [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:108:8 [INFO] [stdout] | [INFO] [stdout] 108 | if (is_parallel [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 111 | && parallel_condition_passed) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 108 ~ if is_parallel [INFO] [stdout] 109 | && !para_set1.is_empty() [INFO] [stdout] 110 | && !para_set2.is_empty() [INFO] [stdout] 111 ~ && parallel_condition_passed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | if (is_redo [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 151 | && redo_condition_passed) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 148 ~ if is_redo [INFO] [stdout] 149 | && !redo_set2.is_empty() [INFO] [stdout] 150 | && !redo_set1.is_empty() [INFO] [stdout] 151 ~ && redo_condition_passed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:231:8 [INFO] [stdout] | [INFO] [stdout] 231 | if (be_set1.is_empty() || be_set2.is_empty()){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 231 - if (be_set1.is_empty() || be_set2.is_empty()){ [INFO] [stdout] 231 + if be_set1.is_empty() || be_set2.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:235:12 [INFO] [stdout] | [INFO] [stdout] 235 | if (!is_exclusive) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 235 - if (!is_exclusive) { [INFO] [stdout] 235 + if !is_exclusive { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/cost_to_cut.rs:1:42 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:427:8 [INFO] [stdout] | [INFO] [stdout] 427 | if (!excl_set1.is_empty() [INFO] [stdout] | ^ [INFO] [stdout] 428 | && !excl_set2.is_empty() [INFO] [stdout] 429 | && is_exclusive_possible) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 427 ~ if !excl_set1.is_empty() [INFO] [stdout] 428 | && !excl_set2.is_empty() [INFO] [stdout] 429 ~ && is_exclusive_possible [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::min` [INFO] [stdout] --> src/cost_to_cut.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cmp::min; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:455:8 [INFO] [stdout] | [INFO] [stdout] 455 | if (!seq_set1.is_empty() [INFO] [stdout] | ^ [INFO] [stdout] 456 | && !seq_set2.is_empty() [INFO] [stdout] 457 | && is_sequence_possible) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 455 ~ if !seq_set1.is_empty() [INFO] [stdout] 456 | && !seq_set2.is_empty() [INFO] [stdout] 457 ~ && is_sequence_possible [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:483:8 [INFO] [stdout] | [INFO] [stdout] 483 | if (is_parallel [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 486 | && parallel_condition_passed) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 483 ~ if is_parallel [INFO] [stdout] 484 | && !para_set1.is_empty() [INFO] [stdout] 485 | && !para_set2.is_empty() [INFO] [stdout] 486 ~ && parallel_condition_passed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:523:8 [INFO] [stdout] | [INFO] [stdout] 523 | if (is_redo [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 526 | && redo_condition_passed) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 523 ~ if is_redo [INFO] [stdout] 524 | && !redo_set2.is_empty() [INFO] [stdout] 525 | && !redo_set1.is_empty() [INFO] [stdout] 526 ~ && redo_condition_passed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BTreeMap` [INFO] [stdout] --> src/good_cuts.rs:2:52 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet, VecDeque, BTreeMap}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `petgraph::graphmap::DiGraphMap` [INFO] [stdout] --> src/good_cuts.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use petgraph::graphmap::DiGraphMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Graph` and `NodeIndex` [INFO] [stdout] --> src/good_cuts.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use petgraph::graph::{Graph, NodeIndex}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `petgraph::algo::ford_fulkerson` [INFO] [stdout] --> src/good_cuts.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use petgraph::algo::ford_fulkerson; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `petgraph::visit::EdgeRef` [INFO] [stdout] --> src/good_cuts.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use petgraph::visit::EdgeRef; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `petgraph::Direction` [INFO] [stdout] --> src/good_cuts.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use petgraph::Direction; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty lines after doc comment [INFO] [stdout] --> src/good_cuts.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / /// * `all_activities` - A reference to a HashSet of all activity names (nodes). [INFO] [stdout] ... | [INFO] [stdout] 102 | | [INFO] [stdout] | |_^ [INFO] [stdout] 103 | //claude code- [INFO] [stdout] 104 | use std::cmp; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty lines are unintentional, remove them [INFO] [stdout] help: if the doc comment should not document the following item then comment it out [INFO] [stdout] | [INFO] [stdout] 11 ~ // /// Entry function to perform the minimum cut on a directed graph with edge costs. [INFO] [stdout] 12 ~ // /// [INFO] [stdout] 13 ~ // /// # Arguments [INFO] [stdout] 14 ~ // /// * `dfg` - A reference to a HashMap representing the directed edges and their costs. [INFO] [stdout] 15 ~ // /// * `all_activities` - A reference to a HashSet of all activity names (nodes). [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:662:16 [INFO] [stdout] | [INFO] [stdout] 662 | if (r1 || r2) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 662 - if (r1 || r2) { [INFO] [stdout] 662 + if r1 || r2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/start_cuts_opti_v2.rs:1015:19 [INFO] [stdout] | [INFO] [stdout] 1015 | } else if (!is_s1_redo && is_s2_redo) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1015 - } else if (!is_s1_redo && is_s2_redo) { [INFO] [stdout] 1015 + } else if !is_s1_redo && is_s2_redo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/conformance_checking.rs:1:42 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/conformance_checking.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use serde_json; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json` [INFO] [stdout] --> src/conformance_checking.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use serde_json; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OCELEvent` [INFO] [stdout] --> src/conformance_checking.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::types::{OCEL, OCELEvent, TreeNode, ProcessForest}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/conformance_checking_r4pm.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{Write, Read}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConformanceMetrics` [INFO] [stdout] --> src/main.rs:50:59 [INFO] [stdout] | [INFO] [stdout] 50 | use conformance_checking::{calculate_conformance_metrics, ConformanceMetrics}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `conformance_checking_mine_fitness`, `conformance_checking_mine_precision`, and `find_fitness_and_precision` [INFO] [stdout] --> src/main.rs:51:33 [INFO] [stdout] | [INFO] [stdout] 51 | use conformance_checking_mine::{conformance_checking_mine_fitness, conformance_checking_mine_precision, find_fitness_and_precision}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `response::Html` [INFO] [stdout] --> src/main.rs:60:20 [INFO] [stdout] | [INFO] [stdout] 60 | use axum::{Router, response::Html, routing::get}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:363:9 [INFO] [stdout] | [INFO] [stdout] 363 | leaf_data: leaf_data, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `leaf_data` [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] --> src/main.rs:1017:9 [INFO] [stdout] | [INFO] [stdout] 1017 | edge_modifications: edge_modifications, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_modifications` [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] --> src/main.rs:1205:9 [INFO] [stdout] | [INFO] [stdout] 1205 | edge_modifications: edge_modifications, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_modifications` [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: `HashMap` [INFO] [stdout] --> src/conformance_types.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/best_exclusive_cut.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/best_parallel_cut.rs:217:23 [INFO] [stdout] | [INFO] [stdout] 217 | } else if (new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len())) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 217 - } else if (new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len())) { [INFO] [stdout] 217 + } else if new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cost_to_add` [INFO] [stdout] --> src/best_redo_cuts.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{cost_to_add, cost_to_cut::is_reachable}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/best_redo_cuts.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/best_sequence_cut.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/cost_to_add.rs:2:14 [INFO] [stdout] | [INFO] [stdout] 2 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/cost_to_cut.rs:1:42 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::min` [INFO] [stdout] --> src/cost_to_cut.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cmp::min; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BTreeMap` [INFO] [stdout] --> src/good_cuts.rs:2:52 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet, VecDeque, BTreeMap}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `petgraph::graphmap::DiGraphMap` [INFO] [stdout] --> src/good_cuts.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use petgraph::graphmap::DiGraphMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Graph` and `NodeIndex` [INFO] [stdout] --> src/good_cuts.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use petgraph::graph::{Graph, NodeIndex}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `petgraph::algo::ford_fulkerson` [INFO] [stdout] --> src/good_cuts.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use petgraph::algo::ford_fulkerson; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `petgraph::visit::EdgeRef` [INFO] [stdout] --> src/good_cuts.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use petgraph::visit::EdgeRef; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `petgraph::Direction` [INFO] [stdout] --> src/good_cuts.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use petgraph::Direction; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty lines after doc comment [INFO] [stdout] --> src/good_cuts.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / /// * `all_activities` - A reference to a HashSet of all activity names (nodes). [INFO] [stdout] ... | [INFO] [stdout] 102 | | [INFO] [stdout] | |_^ [INFO] [stdout] 103 | //claude code- [INFO] [stdout] 104 | use std::cmp; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty lines are unintentional, remove them [INFO] [stdout] help: if the doc comment should not document the following item then comment it out [INFO] [stdout] | [INFO] [stdout] 11 ~ // /// Entry function to perform the minimum cut on a directed graph with edge costs. [INFO] [stdout] 12 ~ // /// [INFO] [stdout] 13 ~ // /// # Arguments [INFO] [stdout] 14 ~ // /// * `dfg` - A reference to a HashMap representing the directed edges and their costs. [INFO] [stdout] 15 ~ // /// * `all_activities` - A reference to a HashSet of all activity names (nodes). [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/conformance_checking.rs:1:42 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/conformance_checking.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use serde_json; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json` [INFO] [stdout] --> src/conformance_checking.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use serde_json; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OCELEvent` [INFO] [stdout] --> src/conformance_checking.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::types::{OCEL, OCELEvent, TreeNode, ProcessForest}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/conformance_checking_r4pm.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{Write, Read}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConformanceMetrics` [INFO] [stdout] --> src/main.rs:50:59 [INFO] [stdout] | [INFO] [stdout] 50 | use conformance_checking::{calculate_conformance_metrics, ConformanceMetrics}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `conformance_checking_mine_fitness`, `conformance_checking_mine_precision`, and `find_fitness_and_precision` [INFO] [stdout] --> src/main.rs:51:33 [INFO] [stdout] | [INFO] [stdout] 51 | use conformance_checking_mine::{conformance_checking_mine_fitness, conformance_checking_mine_precision, find_fitness_and_precision}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `response::Html` [INFO] [stdout] --> src/main.rs:60:20 [INFO] [stdout] | [INFO] [stdout] 60 | use axum::{Router, response::Html, routing::get}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:363:9 [INFO] [stdout] | [INFO] [stdout] 363 | leaf_data: leaf_data, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `leaf_data` [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] --> src/main.rs:1017:9 [INFO] [stdout] | [INFO] [stdout] 1017 | edge_modifications: edge_modifications, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_modifications` [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] --> src/main.rs:1205:9 [INFO] [stdout] | [INFO] [stdout] 1205 | edge_modifications: edge_modifications, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_modifications` [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: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:755:13 [INFO] [stdout] | [INFO] [stdout] 755 | let mut temp_file_name = format!("{}_{}", file_name, i + 1); [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: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1153:9 [INFO] [stdout] | [INFO] [stdout] 1153 | let mut cost_to_add_edges: HashMap<(String, String), f64> = json_to_cost_to_add_edges(&payload.cost_to_add_edges); [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] --> src/main.rs:755:13 [INFO] [stdout] | [INFO] [stdout] 755 | let mut temp_file_name = format!("{}_{}", file_name, i + 1); [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: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1153:9 [INFO] [stdout] | [INFO] [stdout] 1153 | let mut cost_to_add_edges: HashMap<(String, String), f64> = json_to_cost_to_add_edges(&payload.cost_to_add_edges); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `con` [INFO] [stdout] --> src/add_self_loops.rs:167:29 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_con` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rel` [INFO] [stdout] --> src/add_self_loops.rs:167:34 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `defi` [INFO] [stdout] --> src/add_self_loops.rs:167:39 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_defi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `all_activities` [INFO] [stdout] --> src/add_self_loops.rs:167:45 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_activities` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `all_object_types` [INFO] [stdout] --> src/add_self_loops.rs:167:61 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_object_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ocel` [INFO] [stdout] --> src/interaction_patterns.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | ocel: &OCEL, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_ocel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_dfg` [INFO] [stdout] --> src/start_cuts.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | filtered_dfg: &HashMap<(String, String), usize>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:286:10 [INFO] [stdout] | [INFO] [stdout] 286 | for (idx, candidate_scc) in sccs.iter().enumerate() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_dfg` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:638:5 [INFO] [stdout] | [INFO] [stdout] 638 | filtered_dfg: &HashMap<(String, String), usize>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_dfg` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:668:17 [INFO] [stdout] | [INFO] [stdout] 668 | let filtered_dfg = filter_keep_dfg(&dfg, &combined_activites); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_start_activites` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:670:18 [INFO] [stdout] | [INFO] [stdout] 670 | ... let (filtered_start_activites,filtered_end_activites)=get_start_and_end_activities_v2(&dfg, &combined_activites, start_activi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_start_activites` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_end_activites` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:670:43 [INFO] [stdout] | [INFO] [stdout] 670 | ...activites,filtered_end_activites)=get_start_and_end_activities_v2(&dfg, &combined_activites, start_activities, end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_end_activites` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/start_cuts_opti_v2.rs:825:9 [INFO] [stdout] | [INFO] [stdout] 825 | let mut common_activities = intersection.clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> src/start_cuts_opti_v2.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `con` [INFO] [stdout] --> src/add_self_loops.rs:167:29 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_con` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rel` [INFO] [stdout] --> src/add_self_loops.rs:167:34 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `defi` [INFO] [stdout] --> src/add_self_loops.rs:167:39 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_defi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `all_activities` [INFO] [stdout] --> src/add_self_loops.rs:167:45 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_activities` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `all_object_types` [INFO] [stdout] --> src/add_self_loops.rs:167:61 [INFO] [stdout] | [INFO] [stdout] 167 | let (divergent_objects, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_object_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ocel` [INFO] [stdout] --> src/interaction_patterns.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | ocel: &OCEL, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_ocel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_dfg` [INFO] [stdout] --> src/start_cuts.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | filtered_dfg: &HashMap<(String, String), usize>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:286:10 [INFO] [stdout] | [INFO] [stdout] 286 | for (idx, candidate_scc) in sccs.iter().enumerate() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_dfg` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:638:5 [INFO] [stdout] | [INFO] [stdout] 638 | filtered_dfg: &HashMap<(String, String), usize>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_dfg` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:668:17 [INFO] [stdout] | [INFO] [stdout] 668 | let filtered_dfg = filter_keep_dfg(&dfg, &combined_activites); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_start_activites` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:670:18 [INFO] [stdout] | [INFO] [stdout] 670 | ... let (filtered_start_activites,filtered_end_activites)=get_start_and_end_activities_v2(&dfg, &combined_activites, start_activi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_start_activites` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filtered_end_activites` [INFO] [stdout] --> src/start_cuts_opti_v1.rs:670:43 [INFO] [stdout] | [INFO] [stdout] 670 | ...activites,filtered_end_activites)=get_start_and_end_activities_v2(&dfg, &combined_activites, start_activities, end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_end_activites` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/start_cuts_opti_v2.rs:825:9 [INFO] [stdout] | [INFO] [stdout] 825 | let mut common_activities = intersection.clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_flow_value` [INFO] [stdout] --> src/best_exclusive_cut.rs:190:17 [INFO] [stdout] | [INFO] [stdout] 190 | let max_flow_value = graph.max_flow(&source, &sink); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_flow_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/best_redo_cuts.rs:154:63 [INFO] [stdout] | [INFO] [stdout] 154 | let add_cost1 = added_edges1.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/best_redo_cuts.rs:154:66 [INFO] [stdout] | [INFO] [stdout] 154 | let add_cost1 = added_edges1.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/best_redo_cuts.rs:165:63 [INFO] [stdout] | [INFO] [stdout] 165 | let add_cost2 = added_edges2.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/best_redo_cuts.rs:165:66 [INFO] [stdout] | [INFO] [stdout] 165 | let add_cost2 = added_edges2.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_dfg` [INFO] [stdout] --> src/best_redo_cuts.rs:181:10 [INFO] [stdout] | [INFO] [stdout] 181 | let (final_dfg, final_cost, final_removed_edges) = remove_edges_for_redo(start_activities, end_activities, ¤t_dfg, &set1,... [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_removed_edges` [INFO] [stdout] --> src/best_redo_cuts.rs:181:33 [INFO] [stdout] | [INFO] [stdout] 181 | ... final_cost, final_removed_edges) = remove_edges_for_redo(start_activities, end_activities, ¤t_dfg, &set1, &set2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_removed_edges` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_flow_value` [INFO] [stdout] --> src/best_exclusive_cut.rs:190:17 [INFO] [stdout] | [INFO] [stdout] 190 | let max_flow_value = graph.max_flow(&source, &sink); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_flow_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | let mut sum = 0.0; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sum` [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | let mut sum = 0.0; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sum` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bw_a` [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | let bw_a = calc_bandwidth(a_timestamps); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_bw_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `flow` is assigned to, but never used [INFO] [stdout] --> src/cost_to_cut.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | let mut flow = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_flow` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `flow` is never read [INFO] [stdout] --> src/cost_to_cut.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | flow += path_flow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dfg` [INFO] [stdout] --> src/cost_to_cut.rs:218:5 [INFO] [stdout] | [INFO] [stdout] 218 | dfg: &HashMap<(String, String), usize>, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/best_redo_cuts.rs:154:63 [INFO] [stdout] | [INFO] [stdout] 154 | let add_cost1 = added_edges1.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/best_redo_cuts.rs:154:66 [INFO] [stdout] | [INFO] [stdout] 154 | let add_cost1 = added_edges1.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/best_redo_cuts.rs:165:63 [INFO] [stdout] | [INFO] [stdout] 165 | let add_cost2 = added_edges2.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/best_redo_cuts.rs:165:66 [INFO] [stdout] | [INFO] [stdout] 165 | let add_cost2 = added_edges2.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_dfg` [INFO] [stdout] --> src/best_redo_cuts.rs:181:10 [INFO] [stdout] | [INFO] [stdout] 181 | let (final_dfg, final_cost, final_removed_edges) = remove_edges_for_redo(start_activities, end_activities, ¤t_dfg, &set1,... [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_removed_edges` [INFO] [stdout] --> src/best_redo_cuts.rs:181:33 [INFO] [stdout] | [INFO] [stdout] 181 | ... final_cost, final_removed_edges) = remove_edges_for_redo(start_activities, end_activities, ¤t_dfg, &set1, &set2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_removed_edges` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conformance_checking.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | let mut total_traces = traces.len(); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/conformance_checking_mine.rs:127:10 [INFO] [stdout] | [INFO] [stdout] 127 | for (i, execution) in all_executions.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conformance_checking_mine.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | let mut with_first_from_seq1 = vec![seq1[0].clone()]; [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] --> src/conformance_checking_mine.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | let mut with_first_from_seq2 = vec![seq2[0].clone()]; [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] --> src/conformance_checking_mine.rs:603:9 [INFO] [stdout] | [INFO] [stdout] 603 | let mut all_executions_no_ot = if ocpt.is_empty() { [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `all_object_types` [INFO] [stdout] --> src/main.rs:259:47 [INFO] [stdout] | [INFO] [stdout] 259 | let (div, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_object_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_time` [INFO] [stdout] --> src/main.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | let start_time = std::time::Instant::now(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | let mut sum = 0.0; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sum` [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | let mut sum = 0.0; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sum` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `all_object_types` [INFO] [stdout] --> src/main.rs:592:47 [INFO] [stdout] | [INFO] [stdout] 592 | let (div, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_object_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `self_loop_activities_list` is assigned to, but never used [INFO] [stdout] --> src/main.rs:642:9 [INFO] [stdout] | [INFO] [stdout] 642 | let mut self_loop_activities_list: Vec = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_self_loop_activities_list` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bw_a` [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | let bw_a = calc_bandwidth(a_timestamps); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_bw_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `self_loop_activities_list` is never read [INFO] [stdout] --> src/main.rs:734:13 [INFO] [stdout] | [INFO] [stdout] 734 | self_loop_activities_list = self_loop_activities.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_name` [INFO] [stdout] --> src/main.rs:1139:9 [INFO] [stdout] | [INFO] [stdout] 1139 | let file_name = if file_name_input.is_empty() { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/main.rs:1253:13 [INFO] [stdout] | [INFO] [stdout] 1253 | label @ ("sequence" | "parallel" | "exclusive" | "redo") => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `flow` is assigned to, but never used [INFO] [stdout] --> src/cost_to_cut.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | let mut flow = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_flow` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `flow` is never read [INFO] [stdout] --> src/cost_to_cut.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | flow += path_flow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dfg` [INFO] [stdout] --> src/cost_to_cut.rs:218:5 [INFO] [stdout] | [INFO] [stdout] 218 | dfg: &HashMap<(String, String), usize>, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conformance_checking.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | let mut total_traces = traces.len(); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/conformance_checking_mine.rs:127:10 [INFO] [stdout] | [INFO] [stdout] 127 | for (i, execution) in all_executions.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_conformance` is never used [INFO] [stdout] --> src/main.rs:484:4 [INFO] [stdout] | [INFO] [stdout] 484 | fn test_conformance(ocpt_data: serde_json::Value) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_sorted_map` is never used [INFO] [stdout] --> src/main.rs:1361:4 [INFO] [stdout] | [INFO] [stdout] 1361 | fn log_sorted_map( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities_from_dfg` is never used [INFO] [stdout] --> src/main.rs:1435:4 [INFO] [stdout] | [INFO] [stdout] 1435 | fn get_start_and_end_activities_from_dfg( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mainkoi` is never used [INFO] [stdout] --> src/main.rs:1564:4 [INFO] [stdout] | [INFO] [stdout] 1564 | fn mainkoi() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_ocpt_format_for_conformance_from_json` is never used [INFO] [stdout] --> src/conformance_format.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn build_ocpt_format_for_conformance_from_json(file_name: &str) -> OCPT { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_ocel_format_for_conformance_from_json` is never used [INFO] [stdout] --> src/conformance_format.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn build_ocel_format_for_conformance_from_json(file_name: &str) -> OCEL { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conformance_checking_mine.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | let mut with_first_from_seq1 = vec![seq1[0].clone()]; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `json_to_process_forest` is never used [INFO] [stdout] --> src/format_conversion.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn json_to_process_forest(json_string: &str) -> ProcessForest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cuts` is never used [INFO] [stdout] --> src/start_cuts.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn find_cuts( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conformance_checking_mine.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | let mut with_first_from_seq2 = vec![seq2[0].clone()]; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_reachable` is never used [INFO] [stdout] --> src/start_cuts.rs:116:4 [INFO] [stdout] | [INFO] [stdout] 116 | fn is_reachable( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `filter_keep_dfg` is never used [INFO] [stdout] --> src/start_cuts.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn filter_keep_dfg( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_sequence_cut_possible` is never used [INFO] [stdout] --> src/start_cuts.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn is_sequence_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_exclusive_choice_cut_possible` is never used [INFO] [stdout] --> src/start_cuts.rs:182:8 [INFO] [stdout] | [INFO] [stdout] 182 | pub fn is_exclusive_choice_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_parallel_cut_possible` is never used [INFO] [stdout] --> src/start_cuts.rs:197:4 [INFO] [stdout] | [INFO] [stdout] 197 | fn is_parallel_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_redo_cut_possible` is never used [INFO] [stdout] --> src/start_cuts.rs:240:4 [INFO] [stdout] | [INFO] [stdout] 240 | fn is_redo_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities` is never used [INFO] [stdout] --> src/start_cuts.rs:336:4 [INFO] [stdout] | [INFO] [stdout] 336 | fn get_start_and_end_activities( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities_v2` is never used [INFO] [stdout] --> src/start_cuts.rs:366:4 [INFO] [stdout] | [INFO] [stdout] 366 | fn get_start_and_end_activities_v2( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strongly_connected_components` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn strongly_connected_components( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_scc_dag` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn build_scc_dag( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `partition_scc_sets` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:127:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn partition_scc_sets( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_strongly_connected_components` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn print_strongly_connected_components( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_sequence_cut` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:266:8 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn find_sequence_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_subgraph` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:345:4 [INFO] [stdout] | [INFO] [stdout] 345 | fn build_subgraph( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dfs` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:361:4 [INFO] [stdout] | [INFO] [stdout] 361 | fn dfs(node: &String, graph: &HashMap>, visited: &mut HashSet) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compute_sccs` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:375:4 [INFO] [stdout] | [INFO] [stdout] 375 | fn compute_sccs( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dfs_postorder` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:404:4 [INFO] [stdout] | [INFO] [stdout] 404 | fn dfs_postorder( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dfs_collect` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:422:4 [INFO] [stdout] | [INFO] [stdout] 422 | fn dfs_collect( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cuts_start` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:441:8 [INFO] [stdout] | [INFO] [stdout] 441 | pub fn find_cuts_start( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_best_cut` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:599:4 [INFO] [stdout] | [INFO] [stdout] 599 | fn find_best_cut( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cuts` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:636:8 [INFO] [stdout] | [INFO] [stdout] 636 | pub fn find_cuts( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_reachable` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:741:4 [INFO] [stdout] | [INFO] [stdout] 741 | fn is_reachable( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `filter_keep_dfg` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:767:4 [INFO] [stdout] | [INFO] [stdout] 767 | fn filter_keep_dfg( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_sequence_cut_possible` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:780:4 [INFO] [stdout] | [INFO] [stdout] 780 | fn is_sequence_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_exclusive_choice_cut_possible` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:807:4 [INFO] [stdout] | [INFO] [stdout] 807 | fn is_exclusive_choice_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_parallel_cut_possible` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:822:4 [INFO] [stdout] | [INFO] [stdout] 822 | fn is_parallel_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_redo_cut_possible` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:865:4 [INFO] [stdout] | [INFO] [stdout] 865 | fn is_redo_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:961:4 [INFO] [stdout] | [INFO] [stdout] 961 | fn get_start_and_end_activities( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities_v2` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:991:4 [INFO] [stdout] | [INFO] [stdout] 991 | fn get_start_and_end_activities_v2( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cuts_for_node_modification` is never used [INFO] [stdout] --> src/start_cuts_opti_v2.rs:397:8 [INFO] [stdout] | [INFO] [stdout] 397 | pub fn find_cuts_for_node_modification( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_perfectly_cut` is never read [INFO] [stdout] --> src/types.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 249 | pub struct CutSelectedAPIRequest { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 254 | pub is_perfectly_cut: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PartitionResult` is never constructed [INFO] [stdout] --> src/best_parallel_cut.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct PartitionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Solution` is never constructed [INFO] [stdout] --> src/best_parallel_cut.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | struct Solution { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn best_parallel_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_initial_partition` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn generate_initial_partition( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `local_search_improvement` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn local_search_improvement( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `final_optimization` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn final_optimization( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_cost` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:231:4 [INFO] [stdout] | [INFO] [stdout] 231 | fn calculate_cost( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_edges_to_add` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:254:4 [INFO] [stdout] | [INFO] [stdout] 254 | fn get_edges_to_add( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_partition_result` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:277:4 [INFO] [stdout] | [INFO] [stdout] 277 | fn create_partition_result( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PartitionResult` is never constructed [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct PartitionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_exhaustive` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn best_parallel_cut_exhaustive( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_partition_cost` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | fn calculate_partition_cost( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_exhaustive_optimized` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn best_parallel_cut_exhaustive_optimized( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_cost_optimized` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | fn calculate_cost_optimized(mask: u64, n: usize, edge_matrix: &[Vec]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_exhaustive_memory_efficient` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:251:12 [INFO] [stdout] | [INFO] [stdout] 251 | pub fn best_parallel_cut_exhaustive_memory_efficient( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_combinations` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 307 | fn search_combinations( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PartitionResult` is never constructed [INFO] [stdout] --> src/best_parallel_cut_v2.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct PartitionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs` is never used [INFO] [stdout] --> src/best_parallel_cut_v2.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn bfs( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_s_t_min_cut` is never used [INFO] [stdout] --> src/best_parallel_cut_v2.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 66 | fn find_s_t_min_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_v2` is never used [INFO] [stdout] --> src/best_parallel_cut_v2.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 126 | pub fn best_parallel_cut_v2( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_v3` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn best_parallel_cut_v3( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_missing_dfg` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:55:4 [INFO] [stdout] | [INFO] [stdout] 55 | fn create_missing_dfg( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `max_flow_min_cut` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 106 | fn max_flow_min_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs_find_path` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:217:4 [INFO] [stdout] | [INFO] [stdout] 217 | fn bfs_find_path( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs_reachable` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:263:4 [INFO] [stdout] | [INFO] [stdout] 263 | fn bfs_reachable( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Graph` is never constructed [INFO] [stdout] --> src/best_sequence_cut_v2.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Graph { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/best_sequence_cut_v2.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 10 | impl Graph { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 11 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | fn add_edge(&mut self, from: String, to: String, cap: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | fn get_capacity(&self, from: &str, to: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn get_flow(&self, from: &str, to: &str) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | fn get_residual_capacity(&self, from: &str, to: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn push_flow(&mut self, from: &str, to: &str, amount: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | fn bfs_find_path(&self, source: &str, sink: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn max_flow(&mut self, source: &str, sink: &str) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn find_reachable_from_source(&self, source: &str) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_exclusive_cut` is never used [INFO] [stdout] --> src/best_sequence_cut_v2.rs:133:8 [INFO] [stdout] | [INFO] [stdout] 133 | pub fn best_exclusive_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cost_of_adding_edge` is never used [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn cost_of_adding_edge( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cost_of_adding_edge` is never used [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn cost_of_adding_edge( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_min_edge_cut_old` is never used [INFO] [stdout] --> src/cost_to_cut.rs:164:4 [INFO] [stdout] | [INFO] [stdout] 164 | fn find_min_edge_cut_old( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_disconnected` is never used [INFO] [stdout] --> src/cost_to_cut.rs:217:4 [INFO] [stdout] | [INFO] [stdout] 217 | fn is_disconnected( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CutResult` is never constructed [INFO] [stdout] --> src/good_cuts.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct CutResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ActivityPartitioner` is never constructed [INFO] [stdout] --> src/good_cuts.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | pub struct ActivityPartitioner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/good_cuts.rs:123:12 [INFO] [stdout] | [INFO] [stdout] 122 | impl ActivityPartitioner { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 123 | pub fn new(dfg: &HashMap<(String, String), usize>, all_activities: &HashSet) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn solve(&self) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | fn try_source_sink(&self, source: usize, sink: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | fn edmonds_karp(&self, source: usize, sink: usize, mut capacity: Vec>) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | fn find_reachable(&self, source: usize, residual: &[Vec]) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | fn validate_partition(&self, set1: &[String], set2: &[String]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | fn get_reachable_nodes(&self, start: usize) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_cut` is never used [INFO] [stdout] --> src/good_cuts.rs:354:8 [INFO] [stdout] | [INFO] [stdout] 354 | pub fn perform_cut( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_possible_sequence_cut` is never used [INFO] [stdout] --> src/good_cuts.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn best_possible_sequence_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_traces` is never used [INFO] [stdout] --> src/conformance_checking.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn extract_traces(ocel: &OCEL) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_activities_from_tree` is never used [INFO] [stdout] --> src/conformance_checking.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn extract_activities_from_tree(tree: &TreeNode) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_replay_trace` is never used [INFO] [stdout] --> src/conformance_checking.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn can_replay_trace(trace: &[String], tree: &TreeNode) -> (bool, usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replay_on_tree` is never used [INFO] [stdout] --> src/conformance_checking.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn replay_on_tree(trace: &[String], node: &TreeNode, start_idx: usize) -> (bool, usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_fitness` is never used [INFO] [stdout] --> src/conformance_checking.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn calculate_fitness(ocel: &OCEL, process_tree: &ProcessForest) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_precision` is never used [INFO] [stdout] --> src/conformance_checking.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn calculate_precision(ocel: &OCEL, process_tree: &ProcessForest) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_conformance_metrics` is never used [INFO] [stdout] --> src/conformance_checking.rs:225:8 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn calculate_conformance_metrics(ocel: &OCEL, process_tree: &ProcessForest) -> ConformanceMetrics { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConformanceMetrics` is never constructed [INFO] [stdout] --> src/conformance_checking.rs:254:12 [INFO] [stdout] | [INFO] [stdout] 254 | pub struct ConformanceMetrics { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_traces_for_precision` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn format_traces_for_precision(traces: Vec>, self_loop_activities: &[String]) -> Vec src/conformance_checking_mine.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn conformance_checking_mine_precision(ocpt: &ProcessForest, self_loop_activities: &[String], file_name: &str) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_all_executions` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:166:4 [INFO] [stdout] | [INFO] [stdout] 166 | fn generate_all_executions(node: &TreeNode) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_interleavings` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:282:4 [INFO] [stdout] | [INFO] [stdout] 282 | fn generate_interleavings(seq1: &[String], seq2: &[String]) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `conformance_checking_mine_fitness` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | pub fn conformance_checking_mine_fitness(ocpt: &ProcessForest, file_name: &str) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_node` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:346:4 [INFO] [stdout] | [INFO] [stdout] 346 | fn check_node(node: &TreeNode, trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_sequence` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:403:4 [INFO] [stdout] | [INFO] [stdout] 403 | fn check_sequence(left_activities: &HashSet, right_activities: &HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_exclusive` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:433:4 [INFO] [stdout] | [INFO] [stdout] 433 | fn check_exclusive(left_activities: &HashSet, right_activities: &HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_descendant_activities` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:443:4 [INFO] [stdout] | [INFO] [stdout] 443 | fn get_descendant_activities(node: &TreeNode) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trace_contains_any_activity` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:462:4 [INFO] [stdout] | [INFO] [stdout] 462 | fn trace_contains_any_activity(trace: &Vec<(String, String, String, String, String)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_consecutive_self_loops` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:467:4 [INFO] [stdout] | [INFO] [stdout] 467 | fn remove_consecutive_self_loops(trace: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_fitness_and_precision` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | pub fn find_fitness_and_precision(ocpt: &ProcessForest, file_name: &str) -> (usize, usize, usize, usize, f64, f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_all_execution_by_object_types` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:675:4 [INFO] [stdout] | [INFO] [stdout] 675 | fn generate_all_execution_by_object_types( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_ocpt_format_for_conformance_from_json` is never used [INFO] [stdout] --> src/conformance_checking_r4pm.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn build_ocpt_format_for_conformance_from_json(file_name: &str) -> OCPT { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/add_self_loops.rs:17:28 [INFO] [stdout] | [INFO] [stdout] 17 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 17 - for ((from, to), _) in dfg { [INFO] [stdout] 17 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/add_self_loops.rs:108:21 [INFO] [stdout] | [INFO] [stdout] 108 | / relevant_traces = relevant_traces [INFO] [stdout] 109 | | .into_iter() [INFO] [stdout] 110 | | .filter(|trace| { [INFO] [stdout] ... | [INFO] [stdout] 113 | | }) [INFO] [stdout] 114 | | .collect(); [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] = note: `#[warn(clippy::manual_retain)]` on by default [INFO] [stdout] help: consider calling `.retain()` instead [INFO] [stdout] | [INFO] [stdout] 108 ~ relevant_traces.retain(|trace| { [INFO] [stdout] 109 + // Keep traces that do NOT contain any activity from self_loop_activity_ancestors_of_same_branch [INFO] [stdout] 110 + !trace.iter().any(|event| self_loop_activity_ancestors_of_same_branch.contains(&event.1)) [INFO] [stdout] 111 ~ }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/add_self_loops.rs:120:21 [INFO] [stdout] | [INFO] [stdout] 120 | / relevant_traces = relevant_traces [INFO] [stdout] 121 | | .into_iter() [INFO] [stdout] 122 | | .filter(|trace| { [INFO] [stdout] ... | [INFO] [stdout] 125 | | }) [INFO] [stdout] 126 | | .collect(); [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] help: consider calling `.retain()` instead [INFO] [stdout] | [INFO] [stdout] 120 ~ relevant_traces.retain(|trace| { [INFO] [stdout] 121 + // Keep traces that do NOT contain any activity from self_loop_activity_siblings_and_its_decendants [INFO] [stdout] 122 + !trace.iter().any(|event| self_loop_activity_siblings_and_its_decendants.contains(&event.1)) [INFO] [stdout] 123 ~ }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conformance_checking_mine.rs:603:9 [INFO] [stdout] | [INFO] [stdout] 603 | let mut all_executions_no_ot = if ocpt.is_empty() { [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/add_self_loops.rs:159:39 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn get_traces(file_name: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/add_self_loops.rs:171:32 [INFO] [stdout] | [INFO] [stdout] 171 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/add_self_loops.rs:176:14 [INFO] [stdout] | [INFO] [stdout] 176 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/add_self_loops.rs:181:21 [INFO] [stdout] | [INFO] [stdout] 181 | let mut traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/build_relations_fns.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | objects: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 8 - objects: &Vec, [INFO] [stdout] 8 + objects: &[OCELObject], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/conformance_format.rs:57:45 [INFO] [stdout] | [INFO] [stdout] 57 | let objects_json = serde_json::to_value(&objects).expect("Failed to serialize objects"); [INFO] [stdout] | ^^^^^^^^ help: change this to: `objects` [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: function call inside of `expect` [INFO] [stdout] --> src/conformance_format.rs:120:49 [INFO] [stdout] | [INFO] [stdout] 120 | let mut ip_file = File::open(&ip_file_path).expect(&format!("Failed to open file: {}", ip_file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", ip_file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/conformance_format.rs:132:43 [INFO] [stdout] | [INFO] [stdout] 132 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `all_object_types` [INFO] [stdout] --> src/main.rs:259:47 [INFO] [stdout] | [INFO] [stdout] 259 | let (div, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_object_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/conformance_format.rs:159:43 [INFO] [stdout] | [INFO] [stdout] 159 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_time` [INFO] [stdout] --> src/main.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | let start_time = std::time::Instant::now(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/conformance_format.rs:169:43 [INFO] [stdout] | [INFO] [stdout] 169 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `all_object_types` [INFO] [stdout] --> src/main.rs:592:47 [INFO] [stdout] | [INFO] [stdout] 592 | let (div, con, rel, defi, all_activities, all_object_types) = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_object_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `self_loop_activities_list` is assigned to, but never used [INFO] [stdout] --> src/main.rs:642:9 [INFO] [stdout] | [INFO] [stdout] 642 | let mut self_loop_activities_list: Vec = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_self_loop_activities_list` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `self_loop_activities_list` is never read [INFO] [stdout] --> src/main.rs:734:13 [INFO] [stdout] | [INFO] [stdout] 734 | self_loop_activities_list = self_loop_activities.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/divergence_free_dfg.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 14 | | HashMap<(String, String), usize>, [INFO] [stdout] 15 | | HashSet, [INFO] [stdout] 16 | | HashSet, [INFO] [stdout] 17 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/divergence_free_dfg.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_name` [INFO] [stdout] --> src/main.rs:1139:9 [INFO] [stdout] | [INFO] [stdout] 1139 | let file_name = if file_name_input.is_empty() { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/divergence_free_dfg.rs:36:14 [INFO] [stdout] | [INFO] [stdout] 36 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/main.rs:1253:13 [INFO] [stdout] | [INFO] [stdout] 1253 | label @ ("sequence" | "parallel" | "exclusive" | "redo") => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format_conversion.rs:80:17 [INFO] [stdout] | [INFO] [stdout] 80 | / if let serde_json::Value::Number(num) = value { [INFO] [stdout] 81 | | if let Some(cost) = num.as_f64() { [INFO] [stdout] 82 | | dfg.insert((source, target), cost); [INFO] [stdout] 83 | | } [INFO] [stdout] 84 | | } [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] 80 ~ if let serde_json::Value::Number(num) = value [INFO] [stdout] 81 ~ && let Some(cost) = num.as_f64() { [INFO] [stdout] 82 | dfg.insert((source, target), cost); [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/get_dfg_by_object_type.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | ) -> HashMap, HashSet, HashSet)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/get_dfg_by_object_type.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | let mut dfg_sets: HashMap, HashSet, HashSet)> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/get_dfg_by_object_type.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | let mut grouped_by_otype: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/get_dfg_by_object_type.rs:18:14 [INFO] [stdout] | [INFO] [stdout] 18 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/get_dfg_by_object_type.rs:29:36 [INFO] [stdout] | [INFO] [stdout] 29 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/get_dfg_by_object_type.rs:34:18 [INFO] [stdout] | [INFO] [stdout] 34 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/interaction_patterns.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 20 | | HashMap>, // divergent (sorted) [INFO] [stdout] 21 | | HashMap>, // convergent (sorted) [INFO] [stdout] 22 | | HashMap>, // related (sorted) [INFO] [stdout] ... | [INFO] [stdout] 25 | | Vec // set of all object types (sorted) [INFO] [stdout] 26 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/interaction_patterns.rs:17:16 [INFO] [stdout] | [INFO] [stdout] 17 | relations: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - relations: &Vec, [INFO] [stdout] 17 + relations: &[Relation], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/interaction_patterns.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | / event_object_type_sets [INFO] [stdout] 137 | | .get(*event_id) [INFO] [stdout] 138 | | .unwrap() [INFO] [stdout] 139 | | .get(otype) [INFO] [stdout] 140 | | .unwrap() [INFO] [stdout] 141 | | .len() > 0 [INFO] [stdout] | |______________________________^ [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] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 136 ~ !event_object_type_sets [INFO] [stdout] 137 + .get(*event_id) [INFO] [stdout] 138 + .unwrap() [INFO] [stdout] 139 + .get(otype) [INFO] [stdout] 140 + .unwrap().is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts.rs:39:48 [INFO] [stdout] | [INFO] [stdout] 39 | let filtered_dfg = filter_keep_dfg(&dfg, &combined_activites); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:41:99 [INFO] [stdout] | [INFO] [stdout] 41 | ... let (filtered_start_activites,filtered_end_activites)=get_start_and_end_activities_v2(&dfg, &combined_activites, start_activit... [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:53:48 [INFO] [stdout] | [INFO] [stdout] 53 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:53:80 [INFO] [stdout] | [INFO] [stdout] 53 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:53:99 [INFO] [stdout] | [INFO] [stdout] 53 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:54:48 [INFO] [stdout] | [INFO] [stdout] 54 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:54:85 [INFO] [stdout] | [INFO] [stdout] 54 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:54:104 [INFO] [stdout] | [INFO] [stdout] 54 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:67:80 [INFO] [stdout] | [INFO] [stdout] 67 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:67:99 [INFO] [stdout] | [INFO] [stdout] 67 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:68:48 [INFO] [stdout] | [INFO] [stdout] 68 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:68:85 [INFO] [stdout] | [INFO] [stdout] 68 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:68:104 [INFO] [stdout] | [INFO] [stdout] 68 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:81:48 [INFO] [stdout] | [INFO] [stdout] 81 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:81:80 [INFO] [stdout] | [INFO] [stdout] 81 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:81:99 [INFO] [stdout] | [INFO] [stdout] 81 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:82:48 [INFO] [stdout] | [INFO] [stdout] 82 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:82:85 [INFO] [stdout] | [INFO] [stdout] 82 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:82:104 [INFO] [stdout] | [INFO] [stdout] 82 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:95:48 [INFO] [stdout] | [INFO] [stdout] 95 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:95:80 [INFO] [stdout] | [INFO] [stdout] 95 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:95:99 [INFO] [stdout] | [INFO] [stdout] 95 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:96:48 [INFO] [stdout] | [INFO] [stdout] 96 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:96:85 [INFO] [stdout] | [INFO] [stdout] 96 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:96:104 [INFO] [stdout] | [INFO] [stdout] 96 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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 want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 131 - for ((from, to), _) in dfg { [INFO] [stdout] 131 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts.rs:345:28 [INFO] [stdout] | [INFO] [stdout] 345 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 345 - for ((from, to), _) in dfg { [INFO] [stdout] 345 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts.rs:375:24 [INFO] [stdout] | [INFO] [stdout] 375 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 375 - for ((a, b), _) in dfg { [INFO] [stdout] 375 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/start_cuts_opti_v1.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / fn strongconnect( [INFO] [stdout] 31 | | node: &String, [INFO] [stdout] 32 | | graph: &HashMap>, [INFO] [stdout] 33 | | index: &mut usize, [INFO] [stdout] ... | [INFO] [stdout] 38 | | sccs: &mut Vec>, [INFO] [stdout] 39 | | ) { [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: function `test_conformance` is never used [INFO] [stdout] --> src/main.rs:484:4 [INFO] [stdout] | [INFO] [stdout] 484 | fn test_conformance(ocpt_data: serde_json::Value) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_sorted_map` is never used [INFO] [stdout] --> src/main.rs:1361:4 [INFO] [stdout] | [INFO] [stdout] 1361 | fn log_sorted_map( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities_from_dfg` is never used [INFO] [stdout] --> src/main.rs:1435:4 [INFO] [stdout] | [INFO] [stdout] 1435 | fn get_start_and_end_activities_from_dfg( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mainkoi` is never used [INFO] [stdout] --> src/main.rs:1564:4 [INFO] [stdout] | [INFO] [stdout] 1564 | fn mainkoi() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_ocpt_format_for_conformance_from_json` is never used [INFO] [stdout] --> src/conformance_format.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn build_ocpt_format_for_conformance_from_json(file_name: &str) -> OCPT { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_ocel_format_for_conformance_from_json` is never used [INFO] [stdout] --> src/conformance_format.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn build_ocel_format_for_conformance_from_json(file_name: &str) -> OCEL { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `json_to_process_forest` is never used [INFO] [stdout] --> src/format_conversion.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn json_to_process_forest(json_string: &str) -> ProcessForest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cuts` is never used [INFO] [stdout] --> src/start_cuts.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn find_cuts( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_reachable` is never used [INFO] [stdout] --> src/start_cuts.rs:116:4 [INFO] [stdout] | [INFO] [stdout] 116 | fn is_reachable( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v1.rs:104:11 [INFO] [stdout] | [INFO] [stdout] 104 | sccs: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 104 - sccs: &Vec>, [INFO] [stdout] 104 + sccs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `filter_keep_dfg` is never used [INFO] [stdout] --> src/start_cuts.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn filter_keep_dfg( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_sequence_cut_possible` is never used [INFO] [stdout] --> src/start_cuts.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn is_sequence_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_exclusive_choice_cut_possible` is never used [INFO] [stdout] --> src/start_cuts.rs:182:8 [INFO] [stdout] | [INFO] [stdout] 182 | pub fn is_exclusive_choice_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_parallel_cut_possible` is never used [INFO] [stdout] --> src/start_cuts.rs:197:4 [INFO] [stdout] | [INFO] [stdout] 197 | fn is_parallel_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_redo_cut_possible` is never used [INFO] [stdout] --> src/start_cuts.rs:240:4 [INFO] [stdout] | [INFO] [stdout] 240 | fn is_redo_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities` is never used [INFO] [stdout] --> src/start_cuts.rs:336:4 [INFO] [stdout] | [INFO] [stdout] 336 | fn get_start_and_end_activities( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities_v2` is never used [INFO] [stdout] --> src/start_cuts.rs:366:4 [INFO] [stdout] | [INFO] [stdout] 366 | fn get_start_and_end_activities_v2( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strongly_connected_components` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn strongly_connected_components( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_scc_dag` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn build_scc_dag( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `partition_scc_sets` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:127:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn partition_scc_sets( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_strongly_connected_components` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn print_strongly_connected_components( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_sequence_cut` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:266:8 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn find_sequence_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_subgraph` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:345:4 [INFO] [stdout] | [INFO] [stdout] 345 | fn build_subgraph( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dfs` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:361:4 [INFO] [stdout] | [INFO] [stdout] 361 | fn dfs(node: &String, graph: &HashMap>, visited: &mut HashSet) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compute_sccs` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:375:4 [INFO] [stdout] | [INFO] [stdout] 375 | fn compute_sccs( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dfs_postorder` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:404:4 [INFO] [stdout] | [INFO] [stdout] 404 | fn dfs_postorder( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dfs_collect` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:422:4 [INFO] [stdout] | [INFO] [stdout] 422 | fn dfs_collect( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cuts_start` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:441:8 [INFO] [stdout] | [INFO] [stdout] 441 | pub fn find_cuts_start( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_best_cut` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:599:4 [INFO] [stdout] | [INFO] [stdout] 599 | fn find_best_cut( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cuts` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:636:8 [INFO] [stdout] | [INFO] [stdout] 636 | pub fn find_cuts( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_reachable` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:741:4 [INFO] [stdout] | [INFO] [stdout] 741 | fn is_reachable( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `filter_keep_dfg` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:767:4 [INFO] [stdout] | [INFO] [stdout] 767 | fn filter_keep_dfg( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_sequence_cut_possible` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:780:4 [INFO] [stdout] | [INFO] [stdout] 780 | fn is_sequence_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_exclusive_choice_cut_possible` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:807:4 [INFO] [stdout] | [INFO] [stdout] 807 | fn is_exclusive_choice_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_parallel_cut_possible` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:822:4 [INFO] [stdout] | [INFO] [stdout] 822 | fn is_parallel_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_redo_cut_possible` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:865:4 [INFO] [stdout] | [INFO] [stdout] 865 | fn is_redo_cut_possible( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:961:4 [INFO] [stdout] | [INFO] [stdout] 961 | fn get_start_and_end_activities( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_start_and_end_activities_v2` is never used [INFO] [stdout] --> src/start_cuts_opti_v1.rs:991:4 [INFO] [stdout] | [INFO] [stdout] 991 | fn get_start_and_end_activities_v2( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_cuts_for_node_modification` is never used [INFO] [stdout] --> src/start_cuts_opti_v2.rs:397:8 [INFO] [stdout] | [INFO] [stdout] 397 | pub fn find_cuts_for_node_modification( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_perfectly_cut` is never read [INFO] [stdout] --> src/types.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 249 | pub struct CutSelectedAPIRequest { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 254 | pub is_perfectly_cut: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PartitionResult` is never constructed [INFO] [stdout] --> src/best_parallel_cut.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct PartitionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Solution` is never constructed [INFO] [stdout] --> src/best_parallel_cut.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | struct Solution { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn best_parallel_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_initial_partition` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:73:4 [INFO] [stdout] | [INFO] [stdout] 73 | fn generate_initial_partition( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `local_search_improvement` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn local_search_improvement( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `final_optimization` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn final_optimization( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_cost` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:231:4 [INFO] [stdout] | [INFO] [stdout] 231 | fn calculate_cost( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_edges_to_add` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:254:4 [INFO] [stdout] | [INFO] [stdout] 254 | fn get_edges_to_add( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_partition_result` is never used [INFO] [stdout] --> src/best_parallel_cut.rs:277:4 [INFO] [stdout] | [INFO] [stdout] 277 | fn create_partition_result( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PartitionResult` is never constructed [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct PartitionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_exhaustive` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn best_parallel_cut_exhaustive( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v1.rs:129:11 [INFO] [stdout] | [INFO] [stdout] 129 | sccs: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 129 - sccs: &Vec>, [INFO] [stdout] 129 + sccs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_partition_cost` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | fn calculate_partition_cost( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_exhaustive_optimized` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn best_parallel_cut_exhaustive_optimized( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_cost_optimized` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | fn calculate_cost_optimized(mask: u64, n: usize, edge_matrix: &[Vec]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_exhaustive_memory_efficient` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:251:12 [INFO] [stdout] | [INFO] [stdout] 251 | pub fn best_parallel_cut_exhaustive_memory_efficient( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_combinations` is never used [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 307 | fn search_combinations( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PartitionResult` is never constructed [INFO] [stdout] --> src/best_parallel_cut_v2.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct PartitionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs` is never used [INFO] [stdout] --> src/best_parallel_cut_v2.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn bfs( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_s_t_min_cut` is never used [INFO] [stdout] --> src/best_parallel_cut_v2.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 66 | fn find_s_t_min_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_v2` is never used [INFO] [stdout] --> src/best_parallel_cut_v2.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 126 | pub fn best_parallel_cut_v2( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_parallel_cut_v3` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn best_parallel_cut_v3( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_missing_dfg` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:55:4 [INFO] [stdout] | [INFO] [stdout] 55 | fn create_missing_dfg( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `max_flow_min_cut` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 106 | fn max_flow_min_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs_find_path` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:217:4 [INFO] [stdout] | [INFO] [stdout] 217 | fn bfs_find_path( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs_reachable` is never used [INFO] [stdout] --> src/best_parallel_cut_v3.rs:263:4 [INFO] [stdout] | [INFO] [stdout] 263 | fn bfs_reachable( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Graph` is never constructed [INFO] [stdout] --> src/best_sequence_cut_v2.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Graph { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/best_sequence_cut_v2.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 10 | impl Graph { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 11 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | fn add_edge(&mut self, from: String, to: String, cap: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | fn get_capacity(&self, from: &str, to: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn get_flow(&self, from: &str, to: &str) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | fn get_residual_capacity(&self, from: &str, to: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn push_flow(&mut self, from: &str, to: &str, amount: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | fn bfs_find_path(&self, source: &str, sink: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn max_flow(&mut self, source: &str, sink: &str) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn find_reachable_from_source(&self, source: &str) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_exclusive_cut` is never used [INFO] [stdout] --> src/best_sequence_cut_v2.rs:133:8 [INFO] [stdout] | [INFO] [stdout] 133 | pub fn best_exclusive_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cost_of_adding_edge` is never used [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn cost_of_adding_edge( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cost_of_adding_edge` is never used [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn cost_of_adding_edge( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_min_edge_cut_old` is never used [INFO] [stdout] --> src/cost_to_cut.rs:164:4 [INFO] [stdout] | [INFO] [stdout] 164 | fn find_min_edge_cut_old( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_disconnected` is never used [INFO] [stdout] --> src/cost_to_cut.rs:217:4 [INFO] [stdout] | [INFO] [stdout] 217 | fn is_disconnected( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CutResult` is never constructed [INFO] [stdout] --> src/good_cuts.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct CutResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ActivityPartitioner` is never constructed [INFO] [stdout] --> src/good_cuts.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | pub struct ActivityPartitioner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/good_cuts.rs:123:12 [INFO] [stdout] | [INFO] [stdout] 122 | impl ActivityPartitioner { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 123 | pub fn new(dfg: &HashMap<(String, String), usize>, all_activities: &HashSet) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn solve(&self) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | fn try_source_sink(&self, source: usize, sink: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | fn edmonds_karp(&self, source: usize, sink: usize, mut capacity: Vec>) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | fn find_reachable(&self, source: usize, residual: &[Vec]) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | fn validate_partition(&self, set1: &[String], set2: &[String]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | fn get_reachable_nodes(&self, start: usize) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_cut` is never used [INFO] [stdout] --> src/good_cuts.rs:354:8 [INFO] [stdout] | [INFO] [stdout] 354 | pub fn perform_cut( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `best_possible_sequence_cut` is never used [INFO] [stdout] --> src/good_cuts.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn best_possible_sequence_cut( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_traces` is never used [INFO] [stdout] --> src/conformance_checking.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn extract_traces(ocel: &OCEL) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_activities_from_tree` is never used [INFO] [stdout] --> src/conformance_checking.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn extract_activities_from_tree(tree: &TreeNode) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_replay_trace` is never used [INFO] [stdout] --> src/conformance_checking.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn can_replay_trace(trace: &[String], tree: &TreeNode) -> (bool, usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replay_on_tree` is never used [INFO] [stdout] --> src/conformance_checking.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn replay_on_tree(trace: &[String], node: &TreeNode, start_idx: usize) -> (bool, usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_fitness` is never used [INFO] [stdout] --> src/conformance_checking.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn calculate_fitness(ocel: &OCEL, process_tree: &ProcessForest) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_precision` is never used [INFO] [stdout] --> src/conformance_checking.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn calculate_precision(ocel: &OCEL, process_tree: &ProcessForest) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_conformance_metrics` is never used [INFO] [stdout] --> src/conformance_checking.rs:225:8 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn calculate_conformance_metrics(ocel: &OCEL, process_tree: &ProcessForest) -> ConformanceMetrics { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConformanceMetrics` is never constructed [INFO] [stdout] --> src/conformance_checking.rs:254:12 [INFO] [stdout] | [INFO] [stdout] 254 | pub struct ConformanceMetrics { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/start_cuts_opti_v1.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | / fn strongconnect( [INFO] [stdout] 190 | | node: &String, [INFO] [stdout] 191 | | graph: &HashMap>, [INFO] [stdout] 192 | | index: &mut usize, [INFO] [stdout] ... | [INFO] [stdout] 197 | | sccs: &mut Vec>, [INFO] [stdout] 198 | | ) { [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: function `format_traces_for_precision` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn format_traces_for_precision(traces: Vec>, self_loop_activities: &[String]) -> Vec src/conformance_checking_mine.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn conformance_checking_mine_precision(ocpt: &ProcessForest, self_loop_activities: &[String], file_name: &str) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_all_executions` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:166:4 [INFO] [stdout] | [INFO] [stdout] 166 | fn generate_all_executions(node: &TreeNode) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_interleavings` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:282:4 [INFO] [stdout] | [INFO] [stdout] 282 | fn generate_interleavings(seq1: &[String], seq2: &[String]) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `conformance_checking_mine_fitness` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | pub fn conformance_checking_mine_fitness(ocpt: &ProcessForest, file_name: &str) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_node` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:346:4 [INFO] [stdout] | [INFO] [stdout] 346 | fn check_node(node: &TreeNode, trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_sequence` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:403:4 [INFO] [stdout] | [INFO] [stdout] 403 | fn check_sequence(left_activities: &HashSet, right_activities: &HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_exclusive` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:433:4 [INFO] [stdout] | [INFO] [stdout] 433 | fn check_exclusive(left_activities: &HashSet, right_activities: &HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v1.rs:277:28 [INFO] [stdout] | [INFO] [stdout] 277 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 277 - for ((from, to), _) in dfg { [INFO] [stdout] 277 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v1.rs:361:14 [INFO] [stdout] | [INFO] [stdout] 361 | fn dfs(node: &String, graph: &HashMap>, visited: &mut HashSet) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 361 ~ fn dfs(node: &str, graph: &HashMap>, visited: &mut HashSet) { [INFO] [stdout] 362 ~ let mut stack = vec![node.to_owned()]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/start_cuts_opti_v1.rs:364:9 [INFO] [stdout] | [INFO] [stdout] 364 | / if visited.insert(curr.clone()) { [INFO] [stdout] 365 | | if let Some(neighbors) = graph.get(&curr) { [INFO] [stdout] 366 | | for neighbor in neighbors { [INFO] [stdout] 367 | | stack.push(neighbor.clone()); [INFO] [stdout] ... | [INFO] [stdout] 370 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 364 ~ if visited.insert(curr.clone()) [INFO] [stdout] 365 ~ && let Some(neighbors) = graph.get(&curr) { [INFO] [stdout] 366 | for neighbor in neighbors { [INFO] [stdout] 367 | stack.push(neighbor.clone()); [INFO] [stdout] 368 | } [INFO] [stdout] 369 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_descendant_activities` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:443:4 [INFO] [stdout] | [INFO] [stdout] 443 | fn get_descendant_activities(node: &TreeNode) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trace_contains_any_activity` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:462:4 [INFO] [stdout] | [INFO] [stdout] 462 | fn trace_contains_any_activity(trace: &Vec<(String, String, String, String, String)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_consecutive_self_loops` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:467:4 [INFO] [stdout] | [INFO] [stdout] 467 | fn remove_consecutive_self_loops(trace: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_fitness_and_precision` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | pub fn find_fitness_and_precision(ocpt: &ProcessForest, file_name: &str) -> (usize, usize, usize, usize, f64, f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_all_execution_by_object_types` is never used [INFO] [stdout] --> src/conformance_checking_mine.rs:675:4 [INFO] [stdout] | [INFO] [stdout] 675 | fn generate_all_execution_by_object_types( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_ocpt_format_for_conformance_from_json` is never used [INFO] [stdout] --> src/conformance_checking_r4pm.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn build_ocpt_format_for_conformance_from_json(file_name: &str) -> OCPT { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/add_self_loops.rs:17:28 [INFO] [stdout] | [INFO] [stdout] 17 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 17 - for ((from, to), _) in dfg { [INFO] [stdout] 17 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/add_self_loops.rs:108:21 [INFO] [stdout] | [INFO] [stdout] 108 | / relevant_traces = relevant_traces [INFO] [stdout] 109 | | .into_iter() [INFO] [stdout] 110 | | .filter(|trace| { [INFO] [stdout] ... | [INFO] [stdout] 113 | | }) [INFO] [stdout] 114 | | .collect(); [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] = note: `#[warn(clippy::manual_retain)]` on by default [INFO] [stdout] help: consider calling `.retain()` instead [INFO] [stdout] | [INFO] [stdout] 108 ~ relevant_traces.retain(|trace| { [INFO] [stdout] 109 + // Keep traces that do NOT contain any activity from self_loop_activity_ancestors_of_same_branch [INFO] [stdout] 110 + !trace.iter().any(|event| self_loop_activity_ancestors_of_same_branch.contains(&event.1)) [INFO] [stdout] 111 ~ }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/add_self_loops.rs:120:21 [INFO] [stdout] | [INFO] [stdout] 120 | / relevant_traces = relevant_traces [INFO] [stdout] 121 | | .into_iter() [INFO] [stdout] 122 | | .filter(|trace| { [INFO] [stdout] ... | [INFO] [stdout] 125 | | }) [INFO] [stdout] 126 | | .collect(); [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] help: consider calling `.retain()` instead [INFO] [stdout] | [INFO] [stdout] 120 ~ relevant_traces.retain(|trace| { [INFO] [stdout] 121 + // Keep traces that do NOT contain any activity from self_loop_activity_siblings_and_its_decendants [INFO] [stdout] 122 + !trace.iter().any(|event| self_loop_activity_siblings_and_its_decendants.contains(&event.1)) [INFO] [stdout] 123 ~ }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/add_self_loops.rs:159:39 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn get_traces(file_name: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/add_self_loops.rs:171:32 [INFO] [stdout] | [INFO] [stdout] 171 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/add_self_loops.rs:176:14 [INFO] [stdout] | [INFO] [stdout] 176 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/add_self_loops.rs:181:21 [INFO] [stdout] | [INFO] [stdout] 181 | let mut traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v1.rs:450:46 [INFO] [stdout] | [INFO] [stdout] 450 | let sccs = strongly_connected_components(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v1.rs:450:52 [INFO] [stdout] | [INFO] [stdout] 450 | let sccs = strongly_connected_components(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v1.rs:456:41 [INFO] [stdout] | [INFO] [stdout] 456 | let (dag, _) = build_scc_dag(&sccs, &dfg); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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 `if` statement can be collapsed [INFO] [stdout] --> src/start_cuts_opti_v1.rs:609:9 [INFO] [stdout] | [INFO] [stdout] 609 | / if !set1.contains(act) && !set2.contains(act) { [INFO] [stdout] 610 | | if let Some(targets) = seq_sets.get(act) { [INFO] [stdout] 611 | | if !targets.is_empty() { [INFO] [stdout] 612 | | set1.insert(act.clone()); [INFO] [stdout] ... | [INFO] [stdout] 620 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 609 ~ if !set1.contains(act) && !set2.contains(act) [INFO] [stdout] 610 ~ && let Some(targets) = seq_sets.get(act) { [INFO] [stdout] 611 | if !targets.is_empty() { [INFO] [stdout] ... [INFO] [stdout] 618 | } [INFO] [stdout] 619 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/build_relations_fns.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | objects: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 8 - objects: &Vec, [INFO] [stdout] 8 + objects: &[OCELObject], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v1.rs:627:23 [INFO] [stdout] | [INFO] [stdout] 627 | find_best_cut(&seq_sets, &set1); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `seq_sets` [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] --> src/start_cuts_opti_v1.rs:628:23 [INFO] [stdout] | [INFO] [stdout] 628 | find_best_cut(&seq_sets, &set2); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `seq_sets` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/conformance_format.rs:57:45 [INFO] [stdout] | [INFO] [stdout] 57 | let objects_json = serde_json::to_value(&objects).expect("Failed to serialize objects"); [INFO] [stdout] | ^^^^^^^^ help: change this to: `objects` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v1.rs:668:48 [INFO] [stdout] | [INFO] [stdout] 668 | let filtered_dfg = filter_keep_dfg(&dfg, &combined_activites); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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: function call inside of `expect` [INFO] [stdout] --> src/conformance_format.rs:120:49 [INFO] [stdout] | [INFO] [stdout] 120 | let mut ip_file = File::open(&ip_file_path).expect(&format!("Failed to open file: {}", ip_file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", ip_file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v1.rs:670:99 [INFO] [stdout] | [INFO] [stdout] 670 | ... let (filtered_start_activites,filtered_end_activites)=get_start_and_end_activities_v2(&dfg, &combined_activites, start_activi... [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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: function call inside of `expect` [INFO] [stdout] --> src/conformance_format.rs:132:43 [INFO] [stdout] | [INFO] [stdout] 132 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v1.rs:756:36 [INFO] [stdout] | [INFO] [stdout] 756 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 756 - for ((from, to), _) in dfg { [INFO] [stdout] 756 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/conformance_format.rs:159:43 [INFO] [stdout] | [INFO] [stdout] 159 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/conformance_format.rs:169:43 [INFO] [stdout] | [INFO] [stdout] 169 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v1.rs:970:28 [INFO] [stdout] | [INFO] [stdout] 970 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 970 - for ((from, to), _) in dfg { [INFO] [stdout] 970 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v1.rs:1000:24 [INFO] [stdout] | [INFO] [stdout] 1000 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 1000 - for ((a, b), _) in dfg { [INFO] [stdout] 1000 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/start_cuts_opti_v2.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | return forest; [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] 200 - return forest; [INFO] [stdout] 200 + forest [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:44:40 [INFO] [stdout] | [INFO] [stdout] 44 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:44:46 [INFO] [stdout] | [INFO] [stdout] 44 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:46:38 [INFO] [stdout] | [INFO] [stdout] 46 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:46:44 [INFO] [stdout] | [INFO] [stdout] 46 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:46:61 [INFO] [stdout] | [INFO] [stdout] 46 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts_opti_v2.rs:46:80 [INFO] [stdout] | [INFO] [stdout] 46 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts_opti_v2.rs:50:75 [INFO] [stdout] | [INFO] [stdout] 50 | let (excl_set1, excl_set2) = find_exclusive_choice_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:78:65 [INFO] [stdout] | [INFO] [stdout] 78 | let (seq_set1, seq_set2) = find_sequence_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:106:80 [INFO] [stdout] | [INFO] [stdout] 106 | let (is_parallel, para_set1, para_set2) = find_parallel_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:126:13 [INFO] [stdout] | [INFO] [stdout] 126 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | &all_activities, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 160 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:166:13 [INFO] [stdout] | [INFO] [stdout] 166 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:215:40 [INFO] [stdout] | [INFO] [stdout] 215 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:215:46 [INFO] [stdout] | [INFO] [stdout] 215 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:217:38 [INFO] [stdout] | [INFO] [stdout] 217 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:217:44 [INFO] [stdout] | [INFO] [stdout] 217 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:217:61 [INFO] [stdout] | [INFO] [stdout] 217 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts_opti_v2.rs:217:80 [INFO] [stdout] | [INFO] [stdout] 217 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts_opti_v2.rs:230:103 [INFO] [stdout] | [INFO] [stdout] 230 | let (be_min_cost, be_cut_edges, be_set1, be_set2, be_new_dfg) = best_exclusive_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/divergence_free_dfg.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 14 | | HashMap<(String, String), usize>, [INFO] [stdout] 15 | | HashSet, [INFO] [stdout] 16 | | HashSet, [INFO] [stdout] 17 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/divergence_free_dfg.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/divergence_free_dfg.rs:36:14 [INFO] [stdout] | [INFO] [stdout] 36 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:270:42 [INFO] [stdout] | [INFO] [stdout] 270 | ) = best_sequence_cut(&filtered_dfg, &all_activities, &cost_to_add_edges); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:270:59 [INFO] [stdout] | [INFO] [stdout] 270 | ) = best_sequence_cut(&filtered_dfg, &all_activities, &cost_to_add_edges); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `cost_to_add_edges` [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 `if` statement can be collapsed [INFO] [stdout] --> src/format_conversion.rs:80:17 [INFO] [stdout] | [INFO] [stdout] 80 | / if let serde_json::Value::Number(num) = value { [INFO] [stdout] 81 | | if let Some(cost) = num.as_f64() { [INFO] [stdout] 82 | | dfg.insert((source, target), cost); [INFO] [stdout] 83 | | } [INFO] [stdout] 84 | | } [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] 80 ~ if let serde_json::Value::Number(num) = value [INFO] [stdout] 81 ~ && let Some(cost) = num.as_f64() { [INFO] [stdout] 82 | dfg.insert((source, target), cost); [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:317:45 [INFO] [stdout] | [INFO] [stdout] 317 | ) = best_parallel_cut_v4(&filtered_dfg, &all_activities, &cost_to_add_edges, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:317:62 [INFO] [stdout] | [INFO] [stdout] 317 | ) = best_parallel_cut_v4(&filtered_dfg, &all_activities, &cost_to_add_edges, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `cost_to_add_edges` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/get_dfg_by_object_type.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | ) -> HashMap, HashSet, HashSet)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/get_dfg_by_object_type.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | let mut dfg_sets: HashMap, HashSet, HashSet)> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/get_dfg_by_object_type.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | let mut grouped_by_otype: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/get_dfg_by_object_type.rs:18:14 [INFO] [stdout] | [INFO] [stdout] 18 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/get_dfg_by_object_type.rs:29:36 [INFO] [stdout] | [INFO] [stdout] 29 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/get_dfg_by_object_type.rs:34:18 [INFO] [stdout] | [INFO] [stdout] 34 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:346:38 [INFO] [stdout] | [INFO] [stdout] 346 | best_redo_cut(&filtered_dfg, &all_activities, &start_activities, &end_activities, &cost_to_add_edges); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:346:91 [INFO] [stdout] | [INFO] [stdout] 346 | best_redo_cut(&filtered_dfg, &all_activities, &start_activities, &end_activities, &cost_to_add_edges); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `cost_to_add_edges` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/interaction_patterns.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 20 | | HashMap>, // divergent (sorted) [INFO] [stdout] 21 | | HashMap>, // convergent (sorted) [INFO] [stdout] 22 | | HashMap>, // related (sorted) [INFO] [stdout] ... | [INFO] [stdout] 25 | | Vec // set of all object types (sorted) [INFO] [stdout] 26 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/interaction_patterns.rs:17:16 [INFO] [stdout] | [INFO] [stdout] 17 | relations: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - relations: &Vec, [INFO] [stdout] 17 + relations: &[Relation], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/start_cuts_opti_v2.rs:575:5 [INFO] [stdout] | [INFO] [stdout] 575 | return forest; [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] 575 - return forest; [INFO] [stdout] 575 + forest [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:419:40 [INFO] [stdout] | [INFO] [stdout] 419 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:419:46 [INFO] [stdout] | [INFO] [stdout] 419 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:421:38 [INFO] [stdout] | [INFO] [stdout] 421 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:421:44 [INFO] [stdout] | [INFO] [stdout] 421 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:421:61 [INFO] [stdout] | [INFO] [stdout] 421 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts_opti_v2.rs:421:80 [INFO] [stdout] | [INFO] [stdout] 421 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts_opti_v2.rs:425:75 [INFO] [stdout] | [INFO] [stdout] 425 | let (excl_set1, excl_set2) = find_exclusive_choice_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/interaction_patterns.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | / event_object_type_sets [INFO] [stdout] 137 | | .get(*event_id) [INFO] [stdout] 138 | | .unwrap() [INFO] [stdout] 139 | | .get(otype) [INFO] [stdout] 140 | | .unwrap() [INFO] [stdout] 141 | | .len() > 0 [INFO] [stdout] | |______________________________^ [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] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 136 ~ !event_object_type_sets [INFO] [stdout] 137 + .get(*event_id) [INFO] [stdout] 138 + .unwrap() [INFO] [stdout] 139 + .get(otype) [INFO] [stdout] 140 + .unwrap().is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:438:13 [INFO] [stdout] | [INFO] [stdout] 438 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:453:65 [INFO] [stdout] | [INFO] [stdout] 453 | let (seq_set1, seq_set2) = find_sequence_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:466:13 [INFO] [stdout] | [INFO] [stdout] 466 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:472:13 [INFO] [stdout] | [INFO] [stdout] 472 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:481:80 [INFO] [stdout] | [INFO] [stdout] 481 | let (is_parallel, para_set1, para_set2) = find_parallel_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:495:13 [INFO] [stdout] | [INFO] [stdout] 495 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:501:13 [INFO] [stdout] | [INFO] [stdout] 501 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:512:9 [INFO] [stdout] | [INFO] [stdout] 512 | &all_activities, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts.rs:39:48 [INFO] [stdout] | [INFO] [stdout] 39 | let filtered_dfg = filter_keep_dfg(&dfg, &combined_activites); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:41:99 [INFO] [stdout] | [INFO] [stdout] 41 | ... let (filtered_start_activites,filtered_end_activites)=get_start_and_end_activities_v2(&dfg, &combined_activites, start_activit... [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:535:13 [INFO] [stdout] | [INFO] [stdout] 535 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:541:13 [INFO] [stdout] | [INFO] [stdout] 541 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:53:48 [INFO] [stdout] | [INFO] [stdout] 53 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:53:80 [INFO] [stdout] | [INFO] [stdout] 53 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:53:99 [INFO] [stdout] | [INFO] [stdout] 53 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:54:48 [INFO] [stdout] | [INFO] [stdout] 54 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:54:85 [INFO] [stdout] | [INFO] [stdout] 54 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:54:104 [INFO] [stdout] | [INFO] [stdout] 54 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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 want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v2.rs:589:28 [INFO] [stdout] | [INFO] [stdout] 589 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 589 - for ((from, to), _) in dfg { [INFO] [stdout] 589 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:67:80 [INFO] [stdout] | [INFO] [stdout] 67 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:67:99 [INFO] [stdout] | [INFO] [stdout] 67 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:68:48 [INFO] [stdout] | [INFO] [stdout] 68 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:68:85 [INFO] [stdout] | [INFO] [stdout] 68 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:68:104 [INFO] [stdout] | [INFO] [stdout] 68 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:81:48 [INFO] [stdout] | [INFO] [stdout] 81 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:81:80 [INFO] [stdout] | [INFO] [stdout] 81 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:81:99 [INFO] [stdout] | [INFO] [stdout] 81 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts.rs:82:48 [INFO] [stdout] | [INFO] [stdout] 82 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:82:85 [INFO] [stdout] | [INFO] [stdout] 82 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:82:104 [INFO] [stdout] | [INFO] [stdout] 82 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts_opti_v2.rs:675:46 [INFO] [stdout] | [INFO] [stdout] 675 | let sccs = strongly_connected_components(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:675:52 [INFO] [stdout] | [INFO] [stdout] 675 | let sccs = strongly_connected_components(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:681:41 [INFO] [stdout] | [INFO] [stdout] 681 | let (dag, _) = build_scc_dag(&sccs, &dfg); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:95:48 [INFO] [stdout] | [INFO] [stdout] 95 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:95:80 [INFO] [stdout] | [INFO] [stdout] 95 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:95:99 [INFO] [stdout] | [INFO] [stdout] 95 | node.children.extend(find_cuts(&dfg, &filtered_dfg, combo_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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 function has too many arguments (8/7) [INFO] [stdout] --> src/start_cuts_opti_v2.rs:719:5 [INFO] [stdout] | [INFO] [stdout] 719 | / fn strongconnect( [INFO] [stdout] 720 | | node: &String, [INFO] [stdout] 721 | | graph: &HashMap>, [INFO] [stdout] 722 | | index: &mut usize, [INFO] [stdout] ... | [INFO] [stdout] 727 | | sccs: &mut Vec>, [INFO] [stdout] 728 | | ) { [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] --> src/start_cuts.rs:96:48 [INFO] [stdout] | [INFO] [stdout] 96 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts.rs:96:85 [INFO] [stdout] | [INFO] [stdout] 96 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts.rs:96:104 [INFO] [stdout] | [INFO] [stdout] 96 | node.children.extend(find_cuts(&dfg, &filtered_dfg, complement_set, &start_activities, &end_activities)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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 want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 131 - for ((from, to), _) in dfg { [INFO] [stdout] 131 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v2.rs:786:11 [INFO] [stdout] | [INFO] [stdout] 786 | sccs: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 786 - sccs: &Vec>, [INFO] [stdout] 786 + sccs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v2.rs:811:11 [INFO] [stdout] | [INFO] [stdout] 811 | sccs: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 811 - sccs: &Vec>, [INFO] [stdout] 811 + sccs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/start_cuts_opti_v2.rs:882:9 [INFO] [stdout] | [INFO] [stdout] 882 | / if visited.insert(current) { [INFO] [stdout] 883 | | if let Some(neighbors) = dag.get(¤t) { [INFO] [stdout] 884 | | for &neighbor in neighbors { [INFO] [stdout] 885 | | stack.push(neighbor); [INFO] [stdout] ... | [INFO] [stdout] 888 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 882 ~ if visited.insert(current) [INFO] [stdout] 883 ~ && let Some(neighbors) = dag.get(¤t) { [INFO] [stdout] 884 | for &neighbor in neighbors { [INFO] [stdout] 885 | stack.push(neighbor); [INFO] [stdout] 886 | } [INFO] [stdout] 887 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/start_cuts_opti_v2.rs:903:16 [INFO] [stdout] | [INFO] [stdout] 903 | if !(r1 && !r2) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `!r1 || r2` [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: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts.rs:345:28 [INFO] [stdout] | [INFO] [stdout] 345 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 345 - for ((from, to), _) in dfg { [INFO] [stdout] 345 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts.rs:375:24 [INFO] [stdout] | [INFO] [stdout] 375 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 375 - for ((a, b), _) in dfg { [INFO] [stdout] 375 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/start_cuts_opti_v1.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / fn strongconnect( [INFO] [stdout] 31 | | node: &String, [INFO] [stdout] 32 | | graph: &HashMap>, [INFO] [stdout] 33 | | index: &mut usize, [INFO] [stdout] ... | [INFO] [stdout] 38 | | sccs: &mut Vec>, [INFO] [stdout] 39 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v1.rs:104:11 [INFO] [stdout] | [INFO] [stdout] 104 | sccs: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 104 - sccs: &Vec>, [INFO] [stdout] 104 + sccs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v1.rs:129:11 [INFO] [stdout] | [INFO] [stdout] 129 | sccs: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 129 - sccs: &Vec>, [INFO] [stdout] 129 + sccs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/start_cuts_opti_v1.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | / fn strongconnect( [INFO] [stdout] 190 | | node: &String, [INFO] [stdout] 191 | | graph: &HashMap>, [INFO] [stdout] 192 | | index: &mut usize, [INFO] [stdout] ... | [INFO] [stdout] 197 | | sccs: &mut Vec>, [INFO] [stdout] 198 | | ) { [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: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v2.rs:1155:24 [INFO] [stdout] | [INFO] [stdout] 1155 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 1155 - for ((a, b), _) in dfg { [INFO] [stdout] 1155 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/start_cuts_opti_v2.rs:1207:13 [INFO] [stdout] | [INFO] [stdout] 1207 | / if src == current { [INFO] [stdout] 1208 | | if dfs(dst, target, end_activities, dfg, visited) { [INFO] [stdout] 1209 | | return true; [INFO] [stdout] 1210 | | } [INFO] [stdout] 1211 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1207 ~ if src == current [INFO] [stdout] 1208 ~ && dfs(dst, target, end_activities, dfg, visited) { [INFO] [stdout] 1209 | return true; [INFO] [stdout] 1210 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OCEL` contains a capitalized acronym [INFO] [stdout] --> src/types.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct OCEL { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Ocel` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v1.rs:277:28 [INFO] [stdout] | [INFO] [stdout] 277 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 277 - for ((from, to), _) in dfg { [INFO] [stdout] 277 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v1.rs:361:14 [INFO] [stdout] | [INFO] [stdout] 361 | fn dfs(node: &String, graph: &HashMap>, visited: &mut HashSet) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 361 ~ fn dfs(node: &str, graph: &HashMap>, visited: &mut HashSet) { [INFO] [stdout] 362 ~ let mut stack = vec![node.to_owned()]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/start_cuts_opti_v1.rs:364:9 [INFO] [stdout] | [INFO] [stdout] 364 | / if visited.insert(curr.clone()) { [INFO] [stdout] 365 | | if let Some(neighbors) = graph.get(&curr) { [INFO] [stdout] 366 | | for neighbor in neighbors { [INFO] [stdout] 367 | | stack.push(neighbor.clone()); [INFO] [stdout] ... | [INFO] [stdout] 370 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 364 ~ if visited.insert(curr.clone()) [INFO] [stdout] 365 ~ && let Some(neighbors) = graph.get(&curr) { [INFO] [stdout] 366 | for neighbor in neighbors { [INFO] [stdout] 367 | stack.push(neighbor.clone()); [INFO] [stdout] 368 | } [INFO] [stdout] 369 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v1.rs:450:46 [INFO] [stdout] | [INFO] [stdout] 450 | let sccs = strongly_connected_components(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v1.rs:450:52 [INFO] [stdout] | [INFO] [stdout] 450 | let sccs = strongly_connected_components(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v1.rs:456:41 [INFO] [stdout] | [INFO] [stdout] 456 | let (dag, _) = build_scc_dag(&sccs, &dfg); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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 `if` statement can be collapsed [INFO] [stdout] --> src/start_cuts_opti_v1.rs:609:9 [INFO] [stdout] | [INFO] [stdout] 609 | / if !set1.contains(act) && !set2.contains(act) { [INFO] [stdout] 610 | | if let Some(targets) = seq_sets.get(act) { [INFO] [stdout] 611 | | if !targets.is_empty() { [INFO] [stdout] 612 | | set1.insert(act.clone()); [INFO] [stdout] ... | [INFO] [stdout] 620 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 609 ~ if !set1.contains(act) && !set2.contains(act) [INFO] [stdout] 610 ~ && let Some(targets) = seq_sets.get(act) { [INFO] [stdout] 611 | if !targets.is_empty() { [INFO] [stdout] ... [INFO] [stdout] 618 | } [INFO] [stdout] 619 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v1.rs:627:23 [INFO] [stdout] | [INFO] [stdout] 627 | find_best_cut(&seq_sets, &set1); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `seq_sets` [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] --> src/start_cuts_opti_v1.rs:628:23 [INFO] [stdout] | [INFO] [stdout] 628 | find_best_cut(&seq_sets, &set2); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `seq_sets` [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] --> src/start_cuts_opti_v1.rs:668:48 [INFO] [stdout] | [INFO] [stdout] 668 | let filtered_dfg = filter_keep_dfg(&dfg, &combined_activites); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v1.rs:670:99 [INFO] [stdout] | [INFO] [stdout] 670 | ... let (filtered_start_activites,filtered_end_activites)=get_start_and_end_activities_v2(&dfg, &combined_activites, start_activi... [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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 want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v1.rs:756:36 [INFO] [stdout] | [INFO] [stdout] 756 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 756 - for ((from, to), _) in dfg { [INFO] [stdout] 756 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v1.rs:970:28 [INFO] [stdout] | [INFO] [stdout] 970 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 970 - for ((from, to), _) in dfg { [INFO] [stdout] 970 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v1.rs:1000:24 [INFO] [stdout] | [INFO] [stdout] 1000 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 1000 - for ((a, b), _) in dfg { [INFO] [stdout] 1000 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/start_cuts_opti_v2.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | return forest; [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] 200 - return forest; [INFO] [stdout] 200 + forest [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:44:40 [INFO] [stdout] | [INFO] [stdout] 44 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:44:46 [INFO] [stdout] | [INFO] [stdout] 44 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:46:38 [INFO] [stdout] | [INFO] [stdout] 46 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:46:44 [INFO] [stdout] | [INFO] [stdout] 46 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:46:61 [INFO] [stdout] | [INFO] [stdout] 46 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts_opti_v2.rs:46:80 [INFO] [stdout] | [INFO] [stdout] 46 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts_opti_v2.rs:50:75 [INFO] [stdout] | [INFO] [stdout] 50 | let (excl_set1, excl_set2) = find_exclusive_choice_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:78:65 [INFO] [stdout] | [INFO] [stdout] 78 | let (seq_set1, seq_set2) = find_sequence_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:106:80 [INFO] [stdout] | [INFO] [stdout] 106 | let (is_parallel, para_set1, para_set2) = find_parallel_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:126:13 [INFO] [stdout] | [INFO] [stdout] 126 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | &all_activities, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 160 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:166:13 [INFO] [stdout] | [INFO] [stdout] 166 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:215:40 [INFO] [stdout] | [INFO] [stdout] 215 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:215:46 [INFO] [stdout] | [INFO] [stdout] 215 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:217:38 [INFO] [stdout] | [INFO] [stdout] 217 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:217:44 [INFO] [stdout] | [INFO] [stdout] 217 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:217:61 [INFO] [stdout] | [INFO] [stdout] 217 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts_opti_v2.rs:217:80 [INFO] [stdout] | [INFO] [stdout] 217 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts_opti_v2.rs:230:103 [INFO] [stdout] | [INFO] [stdout] 230 | let (be_min_cost, be_cut_edges, be_set1, be_set2, be_new_dfg) = best_exclusive_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:270:42 [INFO] [stdout] | [INFO] [stdout] 270 | ) = best_sequence_cut(&filtered_dfg, &all_activities, &cost_to_add_edges); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:270:59 [INFO] [stdout] | [INFO] [stdout] 270 | ) = best_sequence_cut(&filtered_dfg, &all_activities, &cost_to_add_edges); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `cost_to_add_edges` [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] --> src/start_cuts_opti_v2.rs:317:45 [INFO] [stdout] | [INFO] [stdout] 317 | ) = best_parallel_cut_v4(&filtered_dfg, &all_activities, &cost_to_add_edges, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:317:62 [INFO] [stdout] | [INFO] [stdout] 317 | ) = best_parallel_cut_v4(&filtered_dfg, &all_activities, &cost_to_add_edges, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `cost_to_add_edges` [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] --> src/start_cuts_opti_v2.rs:346:38 [INFO] [stdout] | [INFO] [stdout] 346 | best_redo_cut(&filtered_dfg, &all_activities, &start_activities, &end_activities, &cost_to_add_edges); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:346:91 [INFO] [stdout] | [INFO] [stdout] 346 | best_redo_cut(&filtered_dfg, &all_activities, &start_activities, &end_activities, &cost_to_add_edges); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `cost_to_add_edges` [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] --> src/start_cuts_opti_v2.rs:575:5 [INFO] [stdout] | [INFO] [stdout] 575 | return forest; [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] 575 - return forest; [INFO] [stdout] 575 + forest [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:419:40 [INFO] [stdout] | [INFO] [stdout] 419 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:419:46 [INFO] [stdout] | [INFO] [stdout] 419 | let filtered_dfg = filter_keep_dfg(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:421:38 [INFO] [stdout] | [INFO] [stdout] 421 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:421:44 [INFO] [stdout] | [INFO] [stdout] 421 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:421:61 [INFO] [stdout] | [INFO] [stdout] 421 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `start_activities` [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] --> src/start_cuts_opti_v2.rs:421:80 [INFO] [stdout] | [INFO] [stdout] 421 | get_start_and_end_activities(&dfg, &all_activities, &start_activities, &end_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `end_activities` [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] --> src/start_cuts_opti_v2.rs:425:75 [INFO] [stdout] | [INFO] [stdout] 425 | let (excl_set1, excl_set2) = find_exclusive_choice_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:438:13 [INFO] [stdout] | [INFO] [stdout] 438 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:453:65 [INFO] [stdout] | [INFO] [stdout] 453 | let (seq_set1, seq_set2) = find_sequence_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:466:13 [INFO] [stdout] | [INFO] [stdout] 466 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:472:13 [INFO] [stdout] | [INFO] [stdout] 472 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:481:80 [INFO] [stdout] | [INFO] [stdout] 481 | let (is_parallel, para_set1, para_set2) = find_parallel_cut(&filtered_dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:495:13 [INFO] [stdout] | [INFO] [stdout] 495 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:501:13 [INFO] [stdout] | [INFO] [stdout] 501 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:512:9 [INFO] [stdout] | [INFO] [stdout] 512 | &all_activities, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:535:13 [INFO] [stdout] | [INFO] [stdout] 535 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:541:13 [INFO] [stdout] | [INFO] [stdout] 541 | &dfg, [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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 want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v2.rs:589:28 [INFO] [stdout] | [INFO] [stdout] 589 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 589 - for ((from, to), _) in dfg { [INFO] [stdout] 589 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/start_cuts_opti_v2.rs:675:46 [INFO] [stdout] | [INFO] [stdout] 675 | let sccs = strongly_connected_components(&dfg, &all_activities); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/start_cuts_opti_v2.rs:675:52 [INFO] [stdout] | [INFO] [stdout] 675 | let sccs = strongly_connected_components(&dfg, &all_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `all_activities` [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] --> src/start_cuts_opti_v2.rs:681:41 [INFO] [stdout] | [INFO] [stdout] 681 | let (dag, _) = build_scc_dag(&sccs, &dfg); [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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 function has too many arguments (8/7) [INFO] [stdout] --> src/start_cuts_opti_v2.rs:719:5 [INFO] [stdout] | [INFO] [stdout] 719 | / fn strongconnect( [INFO] [stdout] 720 | | node: &String, [INFO] [stdout] 721 | | graph: &HashMap>, [INFO] [stdout] 722 | | index: &mut usize, [INFO] [stdout] ... | [INFO] [stdout] 727 | | sccs: &mut Vec>, [INFO] [stdout] 728 | | ) { [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v2.rs:786:11 [INFO] [stdout] | [INFO] [stdout] 786 | sccs: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 786 - sccs: &Vec>, [INFO] [stdout] 786 + sccs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/start_cuts_opti_v2.rs:811:11 [INFO] [stdout] | [INFO] [stdout] 811 | sccs: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 811 - sccs: &Vec>, [INFO] [stdout] 811 + sccs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/start_cuts_opti_v2.rs:882:9 [INFO] [stdout] | [INFO] [stdout] 882 | / if visited.insert(current) { [INFO] [stdout] 883 | | if let Some(neighbors) = dag.get(¤t) { [INFO] [stdout] 884 | | for &neighbor in neighbors { [INFO] [stdout] 885 | | stack.push(neighbor); [INFO] [stdout] ... | [INFO] [stdout] 888 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 882 ~ if visited.insert(current) [INFO] [stdout] 883 ~ && let Some(neighbors) = dag.get(¤t) { [INFO] [stdout] 884 | for &neighbor in neighbors { [INFO] [stdout] 885 | stack.push(neighbor); [INFO] [stdout] 886 | } [INFO] [stdout] 887 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/start_cuts_opti_v2.rs:903:16 [INFO] [stdout] | [INFO] [stdout] 903 | if !(r1 && !r2) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `!r1 || r2` [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: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/start_cuts_opti_v2.rs:1155:24 [INFO] [stdout] | [INFO] [stdout] 1155 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 1155 - for ((a, b), _) in dfg { [INFO] [stdout] 1155 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/start_cuts_opti_v2.rs:1207:13 [INFO] [stdout] | [INFO] [stdout] 1207 | / if src == current { [INFO] [stdout] 1208 | | if dfs(dst, target, end_activities, dfg, visited) { [INFO] [stdout] 1209 | | return true; [INFO] [stdout] 1210 | | } [INFO] [stdout] 1211 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1207 ~ if src == current [INFO] [stdout] 1208 ~ && dfs(dst, target, end_activities, dfg, visited) { [INFO] [stdout] 1209 | return true; [INFO] [stdout] 1210 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OCEL` contains a capitalized acronym [INFO] [stdout] --> src/types.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct OCEL { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Ocel` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OCPT` contains a capitalized acronym [INFO] [stdout] --> src/conformance_types.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct OCPT { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Ocpt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OCEL` contains a capitalized acronym [INFO] [stdout] --> src/conformance_types.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct OCEL { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Ocel` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OCPT` contains a capitalized acronym [INFO] [stdout] --> src/conformance_types.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct OCPT { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Ocpt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/best_exclusive_cut.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | / if !self.flow.contains_key(&(to.clone(), from.clone())) { [INFO] [stdout] 26 | | self.flow.insert((to.clone(), from.clone()), 0); [INFO] [stdout] 27 | | } [INFO] [stdout] | |_________^ help: try: `self.flow.entry((to.clone(), from.clone())).or_insert(0);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_exclusive_cut.rs:139:6 [INFO] [stdout] | [INFO] [stdout] 139 | ) -> (usize, Vec<(String, String, usize)>, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/best_parallel_cut.rs:35:24 [INFO] [stdout] | [INFO] [stdout] 35 | let num_restarts = std::cmp::min(50, std::cmp::max(10, n)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `n.clamp(10, 50)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OCEL` contains a capitalized acronym [INFO] [stdout] --> src/conformance_types.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct OCEL { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Ocel` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/best_parallel_cut.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 160 | / if new_solution.cost < current_cost { [INFO] [stdout] 161 | | if best_move.is_none() || new_solution.cost < best_move.as_ref().unwrap().cost { [INFO] [stdout] 162 | | best_move = Some(new_solution); [INFO] [stdout] 163 | | } [INFO] [stdout] 164 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 160 ~ if new_solution.cost < current_cost [INFO] [stdout] 161 ~ && (best_move.is_none() || new_solution.cost < best_move.as_ref().unwrap().cost) { [INFO] [stdout] 162 | best_move = Some(new_solution); [INFO] [stdout] 163 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `set1_vec` [INFO] [stdout] --> src/best_parallel_cut.rs:194:14 [INFO] [stdout] | [INFO] [stdout] 194 | for i in 0..swap_limit { [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 [INFO] [stdout] | [INFO] [stdout] 194 - for i in 0..swap_limit { [INFO] [stdout] 194 + for in set1_vec.iter().take(swap_limit) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `set2_vec` [INFO] [stdout] --> src/best_parallel_cut.rs:195:18 [INFO] [stdout] | [INFO] [stdout] 195 | for j in 0..swap_limit { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 195 - for j in 0..swap_limit { [INFO] [stdout] 195 + for in set2_vec.iter().take(swap_limit) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/best_parallel_cut.rs:210:41 [INFO] [stdout] | [INFO] [stdout] 210 | if new_cost < solution.cost { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 211 | | solution.set1 = new_set1; [INFO] [stdout] 212 | | solution.set2 = new_set2; [INFO] [stdout] 213 | | solution.cost = new_cost; [INFO] [stdout] ... | [INFO] [stdout] 216 | | break; [INFO] [stdout] 217 | | } else if (new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len())) { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/best_parallel_cut.rs:217:117 [INFO] [stdout] | [INFO] [stdout] 217 | } else if (new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len())) { [INFO] [stdout] | _____________________________________________________________________________________________________________________^ [INFO] [stdout] 218 | | solution.set1 = new_set1; [INFO] [stdout] 219 | | solution.set2 = new_set2; [INFO] [stdout] 220 | | solution.cost = new_cost; [INFO] [stdout] ... | [INFO] [stdout] 223 | | break; [INFO] [stdout] 224 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:50:16 [INFO] [stdout] | [INFO] [stdout] 50 | if checked_partitions % report_interval == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `checked_partitions.is_multiple_of(report_interval)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `activities` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:60:22 [INFO] [stdout] | [INFO] [stdout] 60 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 60 - for i in 0..n { [INFO] [stdout] 60 + for (i, ) in activities.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:173:16 [INFO] [stdout] | [INFO] [stdout] 173 | if checked % 100000 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `checked.is_multiple_of(100000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `activities` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:196:18 [INFO] [stdout] | [INFO] [stdout] 196 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 196 - for i in 0..n { [INFO] [stdout] 196 + for (i, ) in activities.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `edge_matrix` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:231:18 [INFO] [stdout] | [INFO] [stdout] 231 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 231 - for i in 0..n { [INFO] [stdout] 231 + for (i, ) in edge_matrix.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `edge_matrix` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:232:22 [INFO] [stdout] | [INFO] [stdout] 232 | for j in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 232 - for j in 0..n { [INFO] [stdout] 232 + for (j, ) in edge_matrix.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:314:24 [INFO] [stdout] | [INFO] [stdout] 314 | best_solution: &mut Option<(Vec, Vec, Vec<(String, String)>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v2.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | residual_graph: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 26 - residual_graph: &Vec>, [INFO] [stdout] 26 + residual_graph: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v2.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | parent: &mut Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 29 - parent: &mut Vec, [INFO] [stdout] 29 + parent: &mut [isize], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v2.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | graph: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 67 ~ graph: &[Vec], [INFO] [stdout] 68 | source: usize, [INFO] [stdout] ... [INFO] [stdout] 71 | let num_nodes = graph.len(); [INFO] [stdout] 72 ~ let mut residual_graph = graph.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `residual_graph` [INFO] [stdout] --> src/best_parallel_cut_v2.rs:105:18 [INFO] [stdout] | [INFO] [stdout] 105 | for v in 0..num_nodes { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 105 - for v in 0..num_nodes { [INFO] [stdout] 105 + for (v, ) in residual_graph.iter().enumerate().take(num_nodes) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/best_parallel_cut_v2.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | /// indicates an edge from activity `a` to `b` exists (n is ignored). [INFO] [stdout] | ^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v3.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | ) -> (usize, usize, Vec<(String, String, usize)>, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v3.rs:59:6 [INFO] [stdout] | [INFO] [stdout] 59 | ) -> (HashMap<(String, String), usize>, HashMap<(String, String), Vec<(String, String)>>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v3.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | ) -> (usize, HashSet, HashSet, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v3.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | source: &String [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 266 ~ source: &str [INFO] [stdout] 267 | ) -> HashSet { [INFO] [stdout] ... [INFO] [stdout] 270 | [INFO] [stdout] 271 ~ queue.push_back(source.to_owned()); [INFO] [stdout] 272 ~ visited.insert(source.to_owned()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v4.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | ) -> (usize, usize, Vec<(String, String, usize)>, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v4.rs:135:6 [INFO] [stdout] | [INFO] [stdout] 135 | ) -> (HashMap<(String, String), usize>, HashMap<(String, String), Vec<(String, String)>>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/best_exclusive_cut.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | / if !self.flow.contains_key(&(to.clone(), from.clone())) { [INFO] [stdout] 26 | | self.flow.insert((to.clone(), from.clone()), 0); [INFO] [stdout] 27 | | } [INFO] [stdout] | |_________^ help: try: `self.flow.entry((to.clone(), from.clone())).or_insert(0);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v4.rs:189:6 [INFO] [stdout] | [INFO] [stdout] 189 | ) -> (usize, HashSet, HashSet, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_exclusive_cut.rs:139:6 [INFO] [stdout] | [INFO] [stdout] 139 | ) -> (usize, Vec<(String, String, usize)>, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v4.rs:342:13 [INFO] [stdout] | [INFO] [stdout] 342 | source: &String [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 342 ~ source: &str [INFO] [stdout] 343 | ) -> HashSet { [INFO] [stdout] ... [INFO] [stdout] 346 | [INFO] [stdout] 347 ~ queue.push_back(source.to_owned()); [INFO] [stdout] 348 ~ visited.insert(source.to_owned()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | ) -> (bool, usize, Vec<(String, String, usize)>, Vec<(String, String, usize)>, usize, usize, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/best_redo_cuts.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | return (true, total_cost, edges_removed, edges_added, cost_of_edges_added, cost_of_edges_removed, set1, set2, current_dfg); [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] 191 - return (true, total_cost, edges_removed, edges_added, cost_of_edges_added, cost_of_edges_removed, set1, set2, current_dfg); [INFO] [stdout] 191 + (true, total_cost, edges_removed, edges_added, cost_of_edges_added, cost_of_edges_removed, set1, set2, current_dfg) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/best_redo_cuts.rs:36:29 [INFO] [stdout] | [INFO] [stdout] 36 | if is_reachable(&dfg, &s, &e) { [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/best_redo_cuts.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | if is_reachable(&dfg, &s, &e) { [INFO] [stdout] | ^^ help: change this to: `s` [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: clamp-like pattern without using clamp function [INFO] [stdout] --> src/best_parallel_cut.rs:35:24 [INFO] [stdout] | [INFO] [stdout] 35 | let num_restarts = std::cmp::min(50, std::cmp::max(10, n)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `n.clamp(10, 50)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/best_redo_cuts.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | if is_reachable(&dfg, &s, &e) { [INFO] [stdout] | ^^ help: change this to: `e` [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] --> src/best_redo_cuts.rs:46:29 [INFO] [stdout] | [INFO] [stdout] 46 | if is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/best_redo_cuts.rs:46:35 [INFO] [stdout] | [INFO] [stdout] 46 | if is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `e` [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] --> src/best_redo_cuts.rs:46:39 [INFO] [stdout] | [INFO] [stdout] 46 | if is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `s` [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] --> src/best_redo_cuts.rs:55:30 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/best_redo_cuts.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `s` [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] --> src/best_redo_cuts.rs:55:40 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `e` [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] --> src/best_redo_cuts.rs:55:61 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/best_redo_cuts.rs:55:67 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `e` [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] --> src/best_redo_cuts.rs:55:71 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `s` [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 `if` statement can be collapsed [INFO] [stdout] --> src/best_parallel_cut.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 160 | / if new_solution.cost < current_cost { [INFO] [stdout] 161 | | if best_move.is_none() || new_solution.cost < best_move.as_ref().unwrap().cost { [INFO] [stdout] 162 | | best_move = Some(new_solution); [INFO] [stdout] 163 | | } [INFO] [stdout] 164 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 160 ~ if new_solution.cost < current_cost [INFO] [stdout] 161 ~ && (best_move.is_none() || new_solution.cost < best_move.as_ref().unwrap().cost) { [INFO] [stdout] 162 | best_move = Some(new_solution); [INFO] [stdout] 163 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/best_redo_cuts.rs:154:73 [INFO] [stdout] | [INFO] [stdout] 154 | let add_cost1 = added_edges1.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `*c` [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: the loop variable `i` is only used to index `set1_vec` [INFO] [stdout] --> src/best_parallel_cut.rs:194:14 [INFO] [stdout] | [INFO] [stdout] 194 | for i in 0..swap_limit { [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 [INFO] [stdout] | [INFO] [stdout] 194 - for i in 0..swap_limit { [INFO] [stdout] 194 + for in set1_vec.iter().take(swap_limit) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `set2_vec` [INFO] [stdout] --> src/best_parallel_cut.rs:195:18 [INFO] [stdout] | [INFO] [stdout] 195 | for j in 0..swap_limit { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 195 - for j in 0..swap_limit { [INFO] [stdout] 195 + for in set2_vec.iter().take(swap_limit) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/best_redo_cuts.rs:165:73 [INFO] [stdout] | [INFO] [stdout] 165 | let add_cost2 = added_edges2.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `*c` [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 `if` has identical blocks [INFO] [stdout] --> src/best_parallel_cut.rs:210:41 [INFO] [stdout] | [INFO] [stdout] 210 | if new_cost < solution.cost { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 211 | | solution.set1 = new_set1; [INFO] [stdout] 212 | | solution.set2 = new_set2; [INFO] [stdout] 213 | | solution.cost = new_cost; [INFO] [stdout] ... | [INFO] [stdout] 216 | | break; [INFO] [stdout] 217 | | } else if (new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len())) { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/best_parallel_cut.rs:217:117 [INFO] [stdout] | [INFO] [stdout] 217 | } else if (new_set1.len().abs_diff(new_set2.len()) < solution.set1.len().abs_diff(solution.set2.len())) { [INFO] [stdout] | _____________________________________________________________________________________________________________________^ [INFO] [stdout] 218 | | solution.set1 = new_set1; [INFO] [stdout] 219 | | solution.set2 = new_set2; [INFO] [stdout] 220 | | solution.cost = new_cost; [INFO] [stdout] ... | [INFO] [stdout] 223 | | break; [INFO] [stdout] 224 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:201:6 [INFO] [stdout] | [INFO] [stdout] 201 | ) -> (HashMap<(String, String), usize>, usize, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/best_redo_cuts.rs:237:15 [INFO] [stdout] | [INFO] [stdout] 237 | activity: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 237 - activity: &String, [INFO] [stdout] 237 + activity: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/best_redo_cuts.rs:275:32 [INFO] [stdout] | [INFO] [stdout] 275 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 275 - for ((from, to), _) in dfg { [INFO] [stdout] 275 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:293:6 [INFO] [stdout] | [INFO] [stdout] 293 | ) -> (HashMap<(String, String), usize>, Vec<(String, String, usize)>, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:50:16 [INFO] [stdout] | [INFO] [stdout] 50 | if checked_partitions % report_interval == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `checked_partitions.is_multiple_of(report_interval)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `activities` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:60:22 [INFO] [stdout] | [INFO] [stdout] 60 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 60 - for i in 0..n { [INFO] [stdout] 60 + for (i, ) in activities.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:347:6 [INFO] [stdout] | [INFO] [stdout] 347 | ) -> (usize, HashMap<(String, String), usize>, Vec<(String, String, usize)>, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:369:6 [INFO] [stdout] | [INFO] [stdout] 369 | ) -> (usize, HashMap<(String, String), usize>, Vec<(String, String, usize)>, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_sequence_cut.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | ) -> (usize, usize, Vec<(String, String, usize)>, usize, Vec<(String, String, usize)>, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:173:16 [INFO] [stdout] | [INFO] [stdout] 173 | if checked % 100000 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `checked.is_multiple_of(100000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `isize::abs()` to usize [INFO] [stdout] --> src/best_sequence_cut.rs:104:33 [INFO] [stdout] | [INFO] [stdout] 104 | let size_diff = (set1.len() as isize - set2.len() as isize).abs() as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(set1.len() as isize - set2.len() as isize).unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `activities` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:196:18 [INFO] [stdout] | [INFO] [stdout] 196 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 196 - for i in 0..n { [INFO] [stdout] 196 + for (i, ) in activities.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `edge_matrix` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:231:18 [INFO] [stdout] | [INFO] [stdout] 231 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 231 - for i in 0..n { [INFO] [stdout] 231 + for (i, ) in edge_matrix.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `edge_matrix` [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:232:22 [INFO] [stdout] | [INFO] [stdout] 232 | for j in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 232 - for j in 0..n { [INFO] [stdout] 232 + for (j, ) in edge_matrix.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_exhaustive.rs:314:24 [INFO] [stdout] | [INFO] [stdout] 314 | best_solution: &mut Option<(Vec, Vec, Vec<(String, String)>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_sequence_cut_v2.rs:136:6 [INFO] [stdout] | [INFO] [stdout] 136 | ) -> (usize, Vec<(String, String)>, HashSet, HashSet) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `activities` [INFO] [stdout] --> src/best_sequence_cut_v2.rs:158:18 [INFO] [stdout] | [INFO] [stdout] 158 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 158 - for i in 0..n { [INFO] [stdout] 158 + for (i, ) in activities.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v2.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | residual_graph: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 26 - residual_graph: &Vec>, [INFO] [stdout] 26 + residual_graph: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v2.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | parent: &mut Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 29 - parent: &mut Vec, [INFO] [stdout] 29 + parent: &mut [isize], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v2.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | graph: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 67 ~ graph: &[Vec], [INFO] [stdout] 68 | source: usize, [INFO] [stdout] ... [INFO] [stdout] 71 | let num_nodes = graph.len(); [INFO] [stdout] 72 ~ let mut residual_graph = graph.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/cost_to_add.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let mut traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `residual_graph` [INFO] [stdout] --> src/best_parallel_cut_v2.rs:105:18 [INFO] [stdout] | [INFO] [stdout] 105 | for v in 0..num_nodes { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 105 - for v in 0..num_nodes { [INFO] [stdout] 105 + for (v, ) in residual_graph.iter().enumerate().take(num_nodes) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/cost_to_add.rs:51:75 [INFO] [stdout] | [INFO] [stdout] 51 | let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 52 | | .into_iter() [INFO] [stdout] 53 | | .map(|relation| relation.clone()) [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 `cloned` method [INFO] [stdout] | [INFO] [stdout] 51 ~ let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] 52 + .into_iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/best_parallel_cut_v2.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | /// indicates an edge from activity `a` to `b` exists (n is ignored). [INFO] [stdout] | ^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add.rs:103:32 [INFO] [stdout] | [INFO] [stdout] 103 | let mut normalized_traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_add.rs:145:24 [INFO] [stdout] | [INFO] [stdout] 145 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 145 - for ((a, b), _) in dfg { [INFO] [stdout] 145 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v3.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | ) -> (usize, usize, Vec<(String, String, usize)>, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add.rs:163:34 [INFO] [stdout] | [INFO] [stdout] 163 | let mut events_per_activity: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v3.rs:59:6 [INFO] [stdout] | [INFO] [stdout] 59 | ) -> (HashMap<(String, String), usize>, HashMap<(String, String), Vec<(String, String)>>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v3.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | ) -> (usize, HashSet, HashSet, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/cost_to_add.rs:277:13 [INFO] [stdout] | [INFO] [stdout] 277 | sum = sum * 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `sum *= 100.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let mut traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:51:75 [INFO] [stdout] | [INFO] [stdout] 51 | let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 52 | | .into_iter() [INFO] [stdout] 53 | | .map(|relation| relation.clone()) [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] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 51 ~ let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] 52 + .into_iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v3.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | source: &String [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 266 ~ source: &str [INFO] [stdout] 267 | ) -> HashSet { [INFO] [stdout] ... [INFO] [stdout] 270 | [INFO] [stdout] 271 ~ queue.push_back(source.to_owned()); [INFO] [stdout] 272 ~ visited.insert(source.to_owned()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:103:32 [INFO] [stdout] | [INFO] [stdout] 103 | let mut normalized_traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v4.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | ) -> (usize, usize, Vec<(String, String, usize)>, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:145:24 [INFO] [stdout] | [INFO] [stdout] 145 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 145 - for ((a, b), _) in dfg { [INFO] [stdout] 145 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:163:34 [INFO] [stdout] | [INFO] [stdout] 163 | let mut events_per_activity: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v4.rs:135:6 [INFO] [stdout] | [INFO] [stdout] 135 | ) -> (HashMap<(String, String), usize>, HashMap<(String, String), Vec<(String, String)>>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:251:37 [INFO] [stdout] | [INFO] [stdout] 251 | fn calc_bandwidth(data: &Vec) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 251 - fn calc_bandwidth(data: &Vec) -> f64 { [INFO] [stdout] 251 + fn calc_bandwidth(data: &[f64]) -> f64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_parallel_cut_v4.rs:189:6 [INFO] [stdout] | [INFO] [stdout] 189 | ) -> (usize, HashSet, HashSet, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:307:39 [INFO] [stdout] | [INFO] [stdout] 307 | let count_in_bucket = if end_idx >= start_idx { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 308 | | end_idx - start_idx [INFO] [stdout] 309 | | } else { [INFO] [stdout] 310 | | 0 [INFO] [stdout] 311 | | }; [INFO] [stdout] | |_________________^ help: replace it with: `end_idx.saturating_sub(start_idx)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `b_timestamps` [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:338:30 [INFO] [stdout] | [INFO] [stdout] 338 | for k in idx_ones..idx_partial_end { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 338 - for k in idx_ones..idx_partial_end { [INFO] [stdout] 338 + for in b_timestamps.iter().take(idx_partial_end).skip(idx_ones) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/best_parallel_cut_v4.rs:342:13 [INFO] [stdout] | [INFO] [stdout] 342 | source: &String [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 342 ~ source: &str [INFO] [stdout] 343 | ) -> HashSet { [INFO] [stdout] ... [INFO] [stdout] 346 | [INFO] [stdout] 347 ~ queue.push_back(source.to_owned()); [INFO] [stdout] 348 ~ visited.insert(source.to_owned()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | ) -> (bool, usize, Vec<(String, String, usize)>, Vec<(String, String, usize)>, usize, usize, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/best_redo_cuts.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | return (true, total_cost, edges_removed, edges_added, cost_of_edges_added, cost_of_edges_removed, set1, set2, current_dfg); [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] 191 - return (true, total_cost, edges_removed, edges_added, cost_of_edges_added, cost_of_edges_removed, set1, set2, current_dfg); [INFO] [stdout] 191 + (true, total_cost, edges_removed, edges_added, cost_of_edges_added, cost_of_edges_removed, set1, set2, current_dfg) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/best_redo_cuts.rs:36:29 [INFO] [stdout] | [INFO] [stdout] 36 | if is_reachable(&dfg, &s, &e) { [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/best_redo_cuts.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | if is_reachable(&dfg, &s, &e) { [INFO] [stdout] | ^^ help: change this to: `s` [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: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/best_redo_cuts.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | if is_reachable(&dfg, &s, &e) { [INFO] [stdout] | ^^ help: change this to: `e` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let mut traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/best_redo_cuts.rs:46:29 [INFO] [stdout] | [INFO] [stdout] 46 | if is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/best_redo_cuts.rs:46:35 [INFO] [stdout] | [INFO] [stdout] 46 | if is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `e` [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] --> src/best_redo_cuts.rs:46:39 [INFO] [stdout] | [INFO] [stdout] 46 | if is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `s` [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 are using an explicit closure for cloning elements [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:51:75 [INFO] [stdout] | [INFO] [stdout] 51 | let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 52 | | .into_iter() [INFO] [stdout] 53 | | .map(|relation| relation.clone()) [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] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 51 ~ let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] 52 + .into_iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/best_redo_cuts.rs:55:30 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/best_redo_cuts.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `s` [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] --> src/best_redo_cuts.rs:55:40 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `e` [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] --> src/best_redo_cuts.rs:55:61 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^^^ help: change this to: `dfg` [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] --> src/best_redo_cuts.rs:55:67 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `e` [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] --> src/best_redo_cuts.rs:55:71 [INFO] [stdout] | [INFO] [stdout] 55 | if !is_reachable(&dfg, &s, &e) || !is_reachable(&dfg, &e, &s) { [INFO] [stdout] | ^^ help: change this to: `s` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:103:32 [INFO] [stdout] | [INFO] [stdout] 103 | let mut normalized_traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:145:24 [INFO] [stdout] | [INFO] [stdout] 145 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 145 - for ((a, b), _) in dfg { [INFO] [stdout] 145 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:163:34 [INFO] [stdout] | [INFO] [stdout] 163 | let mut events_per_activity: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/best_redo_cuts.rs:154:73 [INFO] [stdout] | [INFO] [stdout] 154 | let add_cost1 = added_edges1.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `*c` [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] --> src/best_redo_cuts.rs:165:73 [INFO] [stdout] | [INFO] [stdout] 165 | let add_cost2 = added_edges2.iter().map(|(s, e, c)| *c as usize).sum::(); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `*c` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:201:6 [INFO] [stdout] | [INFO] [stdout] 201 | ) -> (HashMap<(String, String), usize>, usize, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/best_redo_cuts.rs:237:15 [INFO] [stdout] | [INFO] [stdout] 237 | activity: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 237 - activity: &String, [INFO] [stdout] 237 + activity: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:252:37 [INFO] [stdout] | [INFO] [stdout] 252 | fn calc_bandwidth(data: &Vec) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 252 - fn calc_bandwidth(data: &Vec) -> f64 { [INFO] [stdout] 252 + fn calc_bandwidth(data: &[f64]) -> f64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/best_redo_cuts.rs:275:32 [INFO] [stdout] | [INFO] [stdout] 275 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 275 - for ((from, to), _) in dfg { [INFO] [stdout] 275 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:293:6 [INFO] [stdout] | [INFO] [stdout] 293 | ) -> (HashMap<(String, String), usize>, Vec<(String, String, usize)>, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:347:25 [INFO] [stdout] | [INFO] [stdout] 347 | return EmptyElement::at(c) + Circle::new((0,0),s,st.filled()); [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] 347 - return EmptyElement::at(c) + Circle::new((0,0),s,st.filled()); [INFO] [stdout] 347 + EmptyElement::at(c) + Circle::new((0,0),s,st.filled()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:347:6 [INFO] [stdout] | [INFO] [stdout] 347 | ) -> (usize, HashMap<(String, String), usize>, Vec<(String, String, usize)>, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:361:25 [INFO] [stdout] | [INFO] [stdout] 361 | return EmptyElement::at(c) + Circle::new((0,0),s,st.filled()); [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] 361 - return EmptyElement::at(c) + Circle::new((0,0),s,st.filled()); [INFO] [stdout] 361 + EmptyElement::at(c) + Circle::new((0,0),s,st.filled()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_redo_cuts.rs:369:6 [INFO] [stdout] | [INFO] [stdout] 369 | ) -> (usize, HashMap<(String, String), usize>, Vec<(String, String, usize)>, Vec<(String, String, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_sequence_cut.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | ) -> (usize, usize, Vec<(String, String, usize)>, usize, Vec<(String, String, usize)>, HashSet, HashSet, HashMap<(String, String), usize>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_cut.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 58 - for ((from, to), _) in dfg { [INFO] [stdout] 58 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `isize::abs()` to usize [INFO] [stdout] --> src/best_sequence_cut.rs:104:33 [INFO] [stdout] | [INFO] [stdout] 104 | let size_diff = (set1.len() as isize - set2.len() as isize).abs() as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(set1.len() as isize - set2.len() as isize).unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `edges` [INFO] [stdout] --> src/cost_to_cut.rs:190:18 [INFO] [stdout] | [INFO] [stdout] 190 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 190 - for i in 0..n { [INFO] [stdout] 190 + for (i, ) in edges.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/best_sequence_cut_v2.rs:136:6 [INFO] [stdout] | [INFO] [stdout] 136 | ) -> (usize, Vec<(String, String)>, HashSet, HashSet) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/cost_to_cut.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | / if is_disconnected(dfg, &removed_edges, paths) { [INFO] [stdout] 202 | | if edge_count < min_edges || (edge_count == min_edges && total_weight < min_weight) { [INFO] [stdout] 203 | | min_edges = edge_count; [INFO] [stdout] 204 | | min_weight = total_weight; [INFO] [stdout] ... | [INFO] [stdout] 207 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 201 ~ if is_disconnected(dfg, &removed_edges, paths) [INFO] [stdout] 202 ~ && (edge_count < min_edges || (edge_count == min_edges && total_weight < min_weight)) { [INFO] [stdout] 203 | min_edges = edge_count; [INFO] [stdout] 204 | min_weight = total_weight; [INFO] [stdout] 205 | best_edges = edge_list; [INFO] [stdout] 206 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `activities` [INFO] [stdout] --> src/best_sequence_cut_v2.rs:158:18 [INFO] [stdout] | [INFO] [stdout] 158 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 158 - for i in 0..n { [INFO] [stdout] 158 + for (i, ) in activities.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_cut.rs:257:36 [INFO] [stdout] | [INFO] [stdout] 257 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 257 - for ((from, to), _) in dfg { [INFO] [stdout] 257 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/cost_to_add.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let mut traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/cost_to_add.rs:51:75 [INFO] [stdout] | [INFO] [stdout] 51 | let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 52 | | .into_iter() [INFO] [stdout] 53 | | .map(|relation| relation.clone()) [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 `cloned` method [INFO] [stdout] | [INFO] [stdout] 51 ~ let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] 52 + .into_iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/good_cuts.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | / if let Some(result) = self.try_source_sink(source, sink) { [INFO] [stdout] 165 | | if !result.set1.is_empty() && !result.set2.is_empty() && [INFO] [stdout] 166 | | result.total_cost < best_cost && [INFO] [stdout] 167 | | self.validate_partition(&result.set1, &result.set2) { [INFO] [stdout] ... | [INFO] [stdout] 171 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 164 ~ if let Some(result) = self.try_source_sink(source, sink) [INFO] [stdout] 165 ~ && !result.set1.is_empty() && !result.set2.is_empty() && [INFO] [stdout] 166 | result.total_cost < best_cost && [INFO] [stdout] ... [INFO] [stdout] 169 | best_result = Some(result); [INFO] [stdout] 170 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add.rs:103:32 [INFO] [stdout] | [INFO] [stdout] 103 | let mut normalized_traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `capacity` [INFO] [stdout] --> src/good_cuts.rs:183:18 [INFO] [stdout] | [INFO] [stdout] 183 | for i in 0..self.n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 183 - for i in 0..self.n { [INFO] [stdout] 183 + for (i, ) in capacity.iter_mut().enumerate().take(self.n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `residual` [INFO] [stdout] --> src/good_cuts.rs:194:18 [INFO] [stdout] | [INFO] [stdout] 194 | for i in 0..self.n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 194 - for i in 0..self.n { [INFO] [stdout] 194 + for (i, ) in residual.iter().enumerate().take(self.n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `residual` [INFO] [stdout] --> src/good_cuts.rs:195:22 [INFO] [stdout] | [INFO] [stdout] 195 | for j in 0..self.n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 195 - for j in 0..self.n { [INFO] [stdout] 195 + for (j, ) in residual.iter().enumerate().take(self.n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_add.rs:145:24 [INFO] [stdout] | [INFO] [stdout] 145 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 145 - for ((a, b), _) in dfg { [INFO] [stdout] 145 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add.rs:163:34 [INFO] [stdout] | [INFO] [stdout] 163 | let mut events_per_activity: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `residual` [INFO] [stdout] --> src/good_cuts.rs:296:22 [INFO] [stdout] | [INFO] [stdout] 296 | for v in 0..self.n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 296 - for v in 0..self.n { [INFO] [stdout] 296 + for (v, ) in residual.iter().enumerate().take(self.n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/cost_to_add.rs:277:13 [INFO] [stdout] | [INFO] [stdout] 277 | sum = sum * 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `sum *= 100.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let mut traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:51:75 [INFO] [stdout] | [INFO] [stdout] 51 | let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 52 | | .into_iter() [INFO] [stdout] 53 | | .map(|relation| relation.clone()) [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] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 51 ~ let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] 52 + .into_iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:103:32 [INFO] [stdout] | [INFO] [stdout] 103 | let mut normalized_traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:145:24 [INFO] [stdout] | [INFO] [stdout] 145 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 145 - for ((a, b), _) in dfg { [INFO] [stdout] 145 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:163:34 [INFO] [stdout] | [INFO] [stdout] 163 | let mut events_per_activity: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:251:37 [INFO] [stdout] | [INFO] [stdout] 251 | fn calc_bandwidth(data: &Vec) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 251 - fn calc_bandwidth(data: &Vec) -> f64 { [INFO] [stdout] 251 + fn calc_bandwidth(data: &[f64]) -> f64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/conformance_checking.rs:20:18 [INFO] [stdout] | [INFO] [stdout] 20 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:307:39 [INFO] [stdout] | [INFO] [stdout] 307 | let count_in_bucket = if end_idx >= start_idx { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 308 | | end_idx - start_idx [INFO] [stdout] 309 | | } else { [INFO] [stdout] 310 | | 0 [INFO] [stdout] 311 | | }; [INFO] [stdout] | |_________________^ help: replace it with: `end_idx.saturating_sub(start_idx)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `b_timestamps` [INFO] [stdout] --> src/cost_to_add_curve_fitting.rs:338:30 [INFO] [stdout] | [INFO] [stdout] 338 | for k in idx_ones..idx_partial_end { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 338 - for k in idx_ones..idx_partial_end { [INFO] [stdout] 338 + for in b_timestamps.iter().take(idx_partial_end).skip(idx_ones) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | let mut grouped_relations: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let mut traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:51:75 [INFO] [stdout] | [INFO] [stdout] 51 | let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 52 | | .into_iter() [INFO] [stdout] 53 | | .map(|relation| relation.clone()) [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] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 51 ~ let sorted_trace: Vec<(String, String, String, String, String)> = relations_group [INFO] [stdout] 52 + .into_iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/conformance_checking_mine.rs:6:40 [INFO] [stdout] | [INFO] [stdout] 6 | fn format_traces_for_precision(traces: Vec>, self_loop_activities: &[String]) -> Vec src/conformance_checking_mine.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | / if let Some(ref prev) = prev_activity { [INFO] [stdout] 47 | | if self_loop_set.contains(&activity) && &activity == prev { [INFO] [stdout] 48 | | continue; // Skip consecutive duplicate self-loop activity [INFO] [stdout] 49 | | } [INFO] [stdout] 50 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 46 ~ if let Some(ref prev) = prev_activity [INFO] [stdout] 47 ~ && self_loop_set.contains(&activity) && &activity == prev { [INFO] [stdout] 48 | continue; // Skip consecutive duplicate self-loop activity [INFO] [stdout] 49 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:103:32 [INFO] [stdout] | [INFO] [stdout] 103 | let mut normalized_traces: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:145:24 [INFO] [stdout] | [INFO] [stdout] 145 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 145 - for ((a, b), _) in dfg { [INFO] [stdout] 145 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/conformance_checking_mine.rs:120:58 [INFO] [stdout] | [INFO] [stdout] 120 | let traces = format_traces_for_precision(raw_traces, &self_loop_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self_loop_activities` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:163:34 [INFO] [stdout] | [INFO] [stdout] 163 | let mut events_per_activity: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:252:37 [INFO] [stdout] | [INFO] [stdout] 252 | fn calc_bandwidth(data: &Vec) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 252 - fn calc_bandwidth(data: &Vec) -> f64 { [INFO] [stdout] 252 + fn calc_bandwidth(data: &[f64]) -> f64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/conformance_checking_mine.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | / if !ocpt.is_empty() { [INFO] [stdout] 327 | | if !check_node(&ocpt[0], trace) { [INFO] [stdout] 328 | | incorrect_traces += 1; [INFO] [stdout] 329 | | } [INFO] [stdout] 330 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 326 ~ if !ocpt.is_empty() [INFO] [stdout] 327 ~ && !check_node(&ocpt[0], trace) { [INFO] [stdout] 328 | incorrect_traces += 1; [INFO] [stdout] 329 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:347:25 [INFO] [stdout] | [INFO] [stdout] 347 | return EmptyElement::at(c) + Circle::new((0,0),s,st.filled()); [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] 347 - return EmptyElement::at(c) + Circle::new((0,0),s,st.filled()); [INFO] [stdout] 347 + EmptyElement::at(c) + Circle::new((0,0),s,st.filled()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cost_to_add_curve_fitting1.rs:361:25 [INFO] [stdout] | [INFO] [stdout] 361 | return EmptyElement::at(c) + Circle::new((0,0),s,st.filled()); [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] 361 - return EmptyElement::at(c) + Circle::new((0,0),s,st.filled()); [INFO] [stdout] 361 + EmptyElement::at(c) + Circle::new((0,0),s,st.filled()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/conformance_checking_mine.rs:365:12 [INFO] [stdout] | [INFO] [stdout] 365 | } else if node.label == "exclusive" { [INFO] [stdout] | ____________^ [INFO] [stdout] 366 | | if node.children.len() >= 2 { [INFO] [stdout] 367 | | let left_activities = get_descendant_activities(&node.children[0]); [INFO] [stdout] 368 | | let right_activities = get_descendant_activities(&node.children[1]); [INFO] [stdout] ... | [INFO] [stdout] 383 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 365 ~ } else if node.label == "exclusive" [INFO] [stdout] 366 ~ && node.children.len() >= 2 { [INFO] [stdout] 367 | let left_activities = get_descendant_activities(&node.children[0]); [INFO] [stdout] ... [INFO] [stdout] 381 | } [INFO] [stdout] 382 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/conformance_checking_mine.rs:404:25 [INFO] [stdout] | [INFO] [stdout] 404 | trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 404 - trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] 404 + trace: &[(String, String, String, String, String)]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/conformance_checking_mine.rs:434:26 [INFO] [stdout] | [INFO] [stdout] 434 | trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 434 - trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] 434 + trace: &[(String, String, String, String, String)]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/conformance_checking_mine.rs:462:39 [INFO] [stdout] | [INFO] [stdout] 462 | fn trace_contains_any_activity(trace: &Vec<(String, String, String, String, String)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 462 - fn trace_contains_any_activity(trace: &Vec<(String, String, String, String, String)>, [INFO] [stdout] 462 + fn trace_contains_any_activity(trace: &[(String, String, String, String, String)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_cut.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 58 - for ((from, to), _) in dfg { [INFO] [stdout] 58 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/conformance_checking_mine.rs:527:63 [INFO] [stdout] | [INFO] [stdout] 527 | let entry = objects_to_events_map.entry(info.clone()).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `edges` [INFO] [stdout] --> src/cost_to_cut.rs:190:18 [INFO] [stdout] | [INFO] [stdout] 190 | for i in 0..n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 190 - for i in 0..n { [INFO] [stdout] 190 + for (i, ) in edges.iter().enumerate().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/cost_to_cut.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | / if is_disconnected(dfg, &removed_edges, paths) { [INFO] [stdout] 202 | | if edge_count < min_edges || (edge_count == min_edges && total_weight < min_weight) { [INFO] [stdout] 203 | | min_edges = edge_count; [INFO] [stdout] 204 | | min_weight = total_weight; [INFO] [stdout] ... | [INFO] [stdout] 207 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 201 ~ if is_disconnected(dfg, &removed_edges, paths) [INFO] [stdout] 202 ~ && (edge_count < min_edges || (edge_count == min_edges && total_weight < min_weight)) { [INFO] [stdout] 203 | min_edges = edge_count; [INFO] [stdout] 204 | min_weight = total_weight; [INFO] [stdout] 205 | best_edges = edge_list; [INFO] [stdout] 206 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/conformance_checking_mine.rs:681:30 [INFO] [stdout] | [INFO] [stdout] 681 | for (_object, events) in objects_to_events_map { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 681 - for (_object, events) in objects_to_events_map { [INFO] [stdout] 681 + for events in objects_to_events_map.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/cost_to_cut.rs:257:36 [INFO] [stdout] | [INFO] [stdout] 257 | for ((from, to), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 257 - for ((from, to), _) in dfg { [INFO] [stdout] 257 + for (from, to) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/conformance_checking_r4pm.rs:60:43 [INFO] [stdout] | [INFO] [stdout] 60 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/good_cuts.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | / if let Some(result) = self.try_source_sink(source, sink) { [INFO] [stdout] 165 | | if !result.set1.is_empty() && !result.set2.is_empty() && [INFO] [stdout] 166 | | result.total_cost < best_cost && [INFO] [stdout] 167 | | self.validate_partition(&result.set1, &result.set2) { [INFO] [stdout] ... | [INFO] [stdout] 171 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 164 ~ if let Some(result) = self.try_source_sink(source, sink) [INFO] [stdout] 165 ~ && !result.set1.is_empty() && !result.set2.is_empty() && [INFO] [stdout] 166 | result.total_cost < best_cost && [INFO] [stdout] ... [INFO] [stdout] 169 | best_result = Some(result); [INFO] [stdout] 170 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/conformance_checking_r4pm.rs:70:43 [INFO] [stdout] | [INFO] [stdout] 70 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `capacity` [INFO] [stdout] --> src/good_cuts.rs:183:18 [INFO] [stdout] | [INFO] [stdout] 183 | for i in 0..self.n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 183 - for i in 0..self.n { [INFO] [stdout] 183 + for (i, ) in capacity.iter_mut().enumerate().take(self.n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `residual` [INFO] [stdout] --> src/good_cuts.rs:194:18 [INFO] [stdout] | [INFO] [stdout] 194 | for i in 0..self.n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 194 - for i in 0..self.n { [INFO] [stdout] 194 + for (i, ) in residual.iter().enumerate().take(self.n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `residual` [INFO] [stdout] --> src/good_cuts.rs:195:22 [INFO] [stdout] | [INFO] [stdout] 195 | for j in 0..self.n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 195 - for j in 0..self.n { [INFO] [stdout] 195 + for (j, ) in residual.iter().enumerate().take(self.n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `residual` [INFO] [stdout] --> src/good_cuts.rs:296:22 [INFO] [stdout] | [INFO] [stdout] 296 | for v in 0..self.n { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 296 - for v in 0..self.n { [INFO] [stdout] 296 + for (v, ) in residual.iter().enumerate().take(self.n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:257:88 [INFO] [stdout] | [INFO] [stdout] 257 | conformance_format::build_ocel_format_for_conformance(&ocel.events, &ocel.objects, &file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:265:74 [INFO] [stdout] | [INFO] [stdout] 265 | conformance_format::saveInteractionPatterns(&div, &con, &rel, &defi, &file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/conformance_checking.rs:20:18 [INFO] [stdout] | [INFO] [stdout] 20 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:409:74 [INFO] [stdout] | [INFO] [stdout] 409 | let ocpt = conformance_format::build_ocpt_format_for_conformance(&file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:410:91 [INFO] [stdout] | [INFO] [stdout] 410 | let (r4pm_fitness, r4pm_precision) = conformance_checking_r4pm::calculate_metrics(&file_name, &ocpt); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:466:74 [INFO] [stdout] | [INFO] [stdout] 466 | let ocpt = conformance_format::build_ocpt_format_for_conformance(&file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:467:91 [INFO] [stdout] | [INFO] [stdout] 467 | let (r4pm_fitness, r4pm_precision) = conformance_checking_r4pm::calculate_metrics(&file_name, &ocpt); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/conformance_checking_mine.rs:6:40 [INFO] [stdout] | [INFO] [stdout] 6 | fn format_traces_for_precision(traces: Vec>, self_loop_activities: &[String]) -> Vec src/conformance_checking_mine.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | / if let Some(ref prev) = prev_activity { [INFO] [stdout] 47 | | if self_loop_set.contains(&activity) && &activity == prev { [INFO] [stdout] 48 | | continue; // Skip consecutive duplicate self-loop activity [INFO] [stdout] 49 | | } [INFO] [stdout] 50 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 46 ~ if let Some(ref prev) = prev_activity [INFO] [stdout] 47 ~ && self_loop_set.contains(&activity) && &activity == prev { [INFO] [stdout] 48 | continue; // Skip consecutive duplicate self-loop activity [INFO] [stdout] 49 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/conformance_checking_mine.rs:120:58 [INFO] [stdout] | [INFO] [stdout] 120 | let traces = format_traces_for_precision(raw_traces, &self_loop_activities); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self_loop_activities` [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] --> src/main.rs:590:88 [INFO] [stdout] | [INFO] [stdout] 590 | conformance_format::build_ocel_format_for_conformance(&ocel.events, &ocel.objects, &file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:595:74 [INFO] [stdout] | [INFO] [stdout] 595 | conformance_format::saveInteractionPatterns(&div, &con, &rel, &defi, &file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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 `usize` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:694:74 [INFO] [stdout] | [INFO] [stdout] 694 | new_state.dfg.insert((from.clone(), to.clone()), cost.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*cost` [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 `if` statement can be collapsed [INFO] [stdout] --> src/conformance_checking_mine.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | / if !ocpt.is_empty() { [INFO] [stdout] 327 | | if !check_node(&ocpt[0], trace) { [INFO] [stdout] 328 | | incorrect_traces += 1; [INFO] [stdout] 329 | | } [INFO] [stdout] 330 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 326 ~ if !ocpt.is_empty() [INFO] [stdout] 327 ~ && !check_node(&ocpt[0], trace) { [INFO] [stdout] 328 | incorrect_traces += 1; [INFO] [stdout] 329 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:772:91 [INFO] [stdout] | [INFO] [stdout] 772 | let (r4pm_fitness, r4pm_precision) = conformance_checking_r4pm::calculate_metrics(&file_name, &ocpt); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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 `if` statement can be collapsed [INFO] [stdout] --> src/conformance_checking_mine.rs:365:12 [INFO] [stdout] | [INFO] [stdout] 365 | } else if node.label == "exclusive" { [INFO] [stdout] | ____________^ [INFO] [stdout] 366 | | if node.children.len() >= 2 { [INFO] [stdout] 367 | | let left_activities = get_descendant_activities(&node.children[0]); [INFO] [stdout] 368 | | let right_activities = get_descendant_activities(&node.children[1]); [INFO] [stdout] ... | [INFO] [stdout] 383 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 365 ~ } else if node.label == "exclusive" [INFO] [stdout] 366 ~ && node.children.len() >= 2 { [INFO] [stdout] 367 | let left_activities = get_descendant_activities(&node.children[0]); [INFO] [stdout] ... [INFO] [stdout] 381 | } [INFO] [stdout] 382 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/conformance_checking_mine.rs:404:25 [INFO] [stdout] | [INFO] [stdout] 404 | trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 404 - trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] 404 + trace: &[(String, String, String, String, String)]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/conformance_checking_mine.rs:434:26 [INFO] [stdout] | [INFO] [stdout] 434 | trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 434 - trace: &Vec<(String, String, String, String, String)>) -> bool { [INFO] [stdout] 434 + trace: &[(String, String, String, String, String)]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/conformance_checking_mine.rs:462:39 [INFO] [stdout] | [INFO] [stdout] 462 | fn trace_contains_any_activity(trace: &Vec<(String, String, String, String, String)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 462 - fn trace_contains_any_activity(trace: &Vec<(String, String, String, String, String)>, [INFO] [stdout] 462 + fn trace_contains_any_activity(trace: &[(String, String, String, String, String)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/conformance_checking_mine.rs:527:63 [INFO] [stdout] | [INFO] [stdout] 527 | let entry = objects_to_events_map.entry(info.clone()).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:957:48 [INFO] [stdout] | [INFO] [stdout] 957 | dfg.insert((from.clone(), to.clone()), cost.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*cost` [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: you seem to want to iterate on a map's values [INFO] [stdout] --> src/conformance_checking_mine.rs:681:30 [INFO] [stdout] | [INFO] [stdout] 681 | for (_object, events) in objects_to_events_map { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 681 - for (_object, events) in objects_to_events_map { [INFO] [stdout] 681 + for events in objects_to_events_map.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:1100:74 [INFO] [stdout] | [INFO] [stdout] 1100 | let ocpt = conformance_format::build_ocpt_format_for_conformance(&file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:1101:91 [INFO] [stdout] | [INFO] [stdout] 1101 | let (r4pm_fitness, r4pm_precision) = conformance_checking_r4pm::calculate_metrics(&file_name, &ocpt); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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: function call inside of `expect` [INFO] [stdout] --> src/conformance_checking_r4pm.rs:60:43 [INFO] [stdout] | [INFO] [stdout] 60 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/conformance_checking_r4pm.rs:70:43 [INFO] [stdout] | [INFO] [stdout] 70 | let mut file = File::open(&file_path).expect(&format!("Failed to open file: {}", file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed to open file: {}", file_path))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/main.rs:1254:17 [INFO] [stdout] | [INFO] [stdout] 1254 | / if !node.children.is_empty() { [INFO] [stdout] 1255 | | node.children = modify_process_forest( [INFO] [stdout] 1256 | | node.children.clone(), [INFO] [stdout] 1257 | | disjoint_activities, [INFO] [stdout] ... | [INFO] [stdout] 1260 | | ); [INFO] [stdout] 1261 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1253 ~ label @ ("sequence" | "parallel" | "exclusive" | "redo") [INFO] [stdout] 1254 ~ if !node.children.is_empty() => { [INFO] [stdout] 1255 | node.children = modify_process_forest( [INFO] [stdout] ... [INFO] [stdout] 1260 | ); [INFO] [stdout] 1261 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/main.rs:1241:5 [INFO] [stdout] | [INFO] [stdout] 1241 | cut_selected: &CutSuggestion, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cut_selected` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/main.rs:1258:25 [INFO] [stdout] | [INFO] [stdout] 1258 | cut_selected, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:1401:18 [INFO] [stdout] | [INFO] [stdout] 1401 | remove_list: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1401 - remove_list: &Vec, [INFO] [stdout] 1401 + remove_list: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:1427:38 [INFO] [stdout] | [INFO] [stdout] 1427 | fn filter_activities(all_activities: &Vec, remove_list: &Vec) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1427 - fn filter_activities(all_activities: &Vec, remove_list: &Vec) -> HashSet { [INFO] [stdout] 1427 + fn filter_activities(all_activities: &[String], remove_list: &Vec) -> HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:1427:65 [INFO] [stdout] | [INFO] [stdout] 1427 | fn filter_activities(all_activities: &Vec, remove_list: &Vec) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1427 - fn filter_activities(all_activities: &Vec, remove_list: &Vec) -> HashSet { [INFO] [stdout] 1427 + fn filter_activities(all_activities: &Vec, remove_list: &[String]) -> HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/main.rs:1442:24 [INFO] [stdout] | [INFO] [stdout] 1442 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 1442 - for ((a, b), _) in dfg { [INFO] [stdout] 1442 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:257:88 [INFO] [stdout] | [INFO] [stdout] 257 | conformance_format::build_ocel_format_for_conformance(&ocel.events, &ocel.objects, &file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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 `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1476:13 [INFO] [stdout] | [INFO] [stdout] 1476 | / if !node.children.is_empty() { [INFO] [stdout] 1477 | | if find_flower_node(&node.children, disjoint_set) { [INFO] [stdout] 1478 | | return true; // Found in children, propagate up [INFO] [stdout] 1479 | | } [INFO] [stdout] 1480 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1476 ~ if !node.children.is_empty() [INFO] [stdout] 1477 ~ && find_flower_node(&node.children, disjoint_set) { [INFO] [stdout] 1478 | return true; // Found in children, propagate up [INFO] [stdout] 1479 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:265:74 [INFO] [stdout] | [INFO] [stdout] 265 | conformance_format::saveInteractionPatterns(&div, &con, &rel, &defi, &file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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 `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1527:9 [INFO] [stdout] | [INFO] [stdout] 1527 | / if !object_types.is_empty() { [INFO] [stdout] 1528 | | if let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1529 | | entry.div = object_types.clone(); [INFO] [stdout] 1530 | | } [INFO] [stdout] 1531 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1527 ~ if !object_types.is_empty() [INFO] [stdout] 1528 ~ && let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1529 | entry.div = object_types.clone(); [INFO] [stdout] 1530 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1536:9 [INFO] [stdout] | [INFO] [stdout] 1536 | / if !object_types.is_empty() { [INFO] [stdout] 1537 | | if let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1538 | | entry.con = object_types.clone(); [INFO] [stdout] 1539 | | } [INFO] [stdout] 1540 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1536 ~ if !object_types.is_empty() [INFO] [stdout] 1537 ~ && let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1538 | entry.con = object_types.clone(); [INFO] [stdout] 1539 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1545:9 [INFO] [stdout] | [INFO] [stdout] 1545 | / if !object_types.is_empty() { [INFO] [stdout] 1546 | | if let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1547 | | entry.rel = object_types.clone(); [INFO] [stdout] 1548 | | } [INFO] [stdout] 1549 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1545 ~ if !object_types.is_empty() [INFO] [stdout] 1546 ~ && let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1547 | entry.rel = object_types.clone(); [INFO] [stdout] 1548 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1554:9 [INFO] [stdout] | [INFO] [stdout] 1554 | / if !object_types.is_empty() { [INFO] [stdout] 1555 | | if let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1556 | | entry.def = object_types.clone(); [INFO] [stdout] 1557 | | } [INFO] [stdout] 1558 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1554 ~ if !object_types.is_empty() [INFO] [stdout] 1555 ~ && let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1556 | entry.def = object_types.clone(); [INFO] [stdout] 1557 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:409:74 [INFO] [stdout] | [INFO] [stdout] 409 | let ocpt = conformance_format::build_ocpt_format_for_conformance(&file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:410:91 [INFO] [stdout] | [INFO] [stdout] 410 | let (r4pm_fitness, r4pm_precision) = conformance_checking_r4pm::calculate_metrics(&file_name, &ocpt); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:466:74 [INFO] [stdout] | [INFO] [stdout] 466 | let ocpt = conformance_format::build_ocpt_format_for_conformance(&file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:467:91 [INFO] [stdout] | [INFO] [stdout] 467 | let (r4pm_fitness, r4pm_precision) = conformance_checking_r4pm::calculate_metrics(&file_name, &ocpt); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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: function `saveInteractionPatterns` should have a snake case name [INFO] [stdout] --> src/conformance_format.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn saveInteractionPatterns( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `save_interaction_patterns` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:590:88 [INFO] [stdout] | [INFO] [stdout] 590 | conformance_format::build_ocel_format_for_conformance(&ocel.events, &ocel.objects, &file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:595:74 [INFO] [stdout] | [INFO] [stdout] 595 | conformance_format::saveInteractionPatterns(&div, &con, &rel, &defi, &file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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: structure field `OCPT` should have a snake case name [INFO] [stdout] --> src/types.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | pub OCPT: serde_json::Value, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `ocpt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:694:74 [INFO] [stdout] | [INFO] [stdout] 694 | new_state.dfg.insert((from.clone(), to.clone()), cost.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*cost` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:772:91 [INFO] [stdout] | [INFO] [stdout] 772 | let (r4pm_fitness, r4pm_precision) = conformance_checking_r4pm::calculate_metrics(&file_name, &ocpt); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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 `usize` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:957:48 [INFO] [stdout] | [INFO] [stdout] 957 | dfg.insert((from.clone(), to.clone()), cost.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*cost` [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] --> src/main.rs:1100:74 [INFO] [stdout] | [INFO] [stdout] 1100 | let ocpt = conformance_format::build_ocpt_format_for_conformance(&file_name); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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] --> src/main.rs:1101:91 [INFO] [stdout] | [INFO] [stdout] 1101 | let (r4pm_fitness, r4pm_precision) = conformance_checking_r4pm::calculate_metrics(&file_name, &ocpt); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_name` [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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/main.rs:1254:17 [INFO] [stdout] | [INFO] [stdout] 1254 | / if !node.children.is_empty() { [INFO] [stdout] 1255 | | node.children = modify_process_forest( [INFO] [stdout] 1256 | | node.children.clone(), [INFO] [stdout] 1257 | | disjoint_activities, [INFO] [stdout] ... | [INFO] [stdout] 1260 | | ); [INFO] [stdout] 1261 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1253 ~ label @ ("sequence" | "parallel" | "exclusive" | "redo") [INFO] [stdout] 1254 ~ if !node.children.is_empty() => { [INFO] [stdout] 1255 | node.children = modify_process_forest( [INFO] [stdout] ... [INFO] [stdout] 1260 | ); [INFO] [stdout] 1261 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/main.rs:1241:5 [INFO] [stdout] | [INFO] [stdout] 1241 | cut_selected: &CutSuggestion, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cut_selected` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/main.rs:1258:25 [INFO] [stdout] | [INFO] [stdout] 1258 | cut_selected, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:1401:18 [INFO] [stdout] | [INFO] [stdout] 1401 | remove_list: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1401 - remove_list: &Vec, [INFO] [stdout] 1401 + remove_list: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:1427:38 [INFO] [stdout] | [INFO] [stdout] 1427 | fn filter_activities(all_activities: &Vec, remove_list: &Vec) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1427 - fn filter_activities(all_activities: &Vec, remove_list: &Vec) -> HashSet { [INFO] [stdout] 1427 + fn filter_activities(all_activities: &[String], remove_list: &Vec) -> HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:1427:65 [INFO] [stdout] | [INFO] [stdout] 1427 | fn filter_activities(all_activities: &Vec, remove_list: &Vec) -> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1427 - fn filter_activities(all_activities: &Vec, remove_list: &Vec) -> HashSet { [INFO] [stdout] 1427 + fn filter_activities(all_activities: &Vec, remove_list: &[String]) -> HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/main.rs:1442:24 [INFO] [stdout] | [INFO] [stdout] 1442 | for ((a, b), _) in dfg { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 1442 - for ((a, b), _) in dfg { [INFO] [stdout] 1442 + for (a, b) in dfg.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1476:13 [INFO] [stdout] | [INFO] [stdout] 1476 | / if !node.children.is_empty() { [INFO] [stdout] 1477 | | if find_flower_node(&node.children, disjoint_set) { [INFO] [stdout] 1478 | | return true; // Found in children, propagate up [INFO] [stdout] 1479 | | } [INFO] [stdout] 1480 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1476 ~ if !node.children.is_empty() [INFO] [stdout] 1477 ~ && find_flower_node(&node.children, disjoint_set) { [INFO] [stdout] 1478 | return true; // Found in children, propagate up [INFO] [stdout] 1479 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1527:9 [INFO] [stdout] | [INFO] [stdout] 1527 | / if !object_types.is_empty() { [INFO] [stdout] 1528 | | if let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1529 | | entry.div = object_types.clone(); [INFO] [stdout] 1530 | | } [INFO] [stdout] 1531 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1527 ~ if !object_types.is_empty() [INFO] [stdout] 1528 ~ && let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1529 | entry.div = object_types.clone(); [INFO] [stdout] 1530 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1536:9 [INFO] [stdout] | [INFO] [stdout] 1536 | / if !object_types.is_empty() { [INFO] [stdout] 1537 | | if let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1538 | | entry.con = object_types.clone(); [INFO] [stdout] 1539 | | } [INFO] [stdout] 1540 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1536 ~ if !object_types.is_empty() [INFO] [stdout] 1537 ~ && let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1538 | entry.con = object_types.clone(); [INFO] [stdout] 1539 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1545:9 [INFO] [stdout] | [INFO] [stdout] 1545 | / if !object_types.is_empty() { [INFO] [stdout] 1546 | | if let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1547 | | entry.rel = object_types.clone(); [INFO] [stdout] 1548 | | } [INFO] [stdout] 1549 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1545 ~ if !object_types.is_empty() [INFO] [stdout] 1546 ~ && let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1547 | entry.rel = object_types.clone(); [INFO] [stdout] 1548 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:1554:9 [INFO] [stdout] | [INFO] [stdout] 1554 | / if !object_types.is_empty() { [INFO] [stdout] 1555 | | if let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1556 | | entry.def = object_types.clone(); [INFO] [stdout] 1557 | | } [INFO] [stdout] 1558 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1554 ~ if !object_types.is_empty() [INFO] [stdout] 1555 ~ && let Some(entry) = leaf_data.get_mut(activity) { [INFO] [stdout] 1556 | entry.def = object_types.clone(); [INFO] [stdout] 1557 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `saveInteractionPatterns` should have a snake case name [INFO] [stdout] --> src/conformance_format.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn saveInteractionPatterns( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `save_interaction_patterns` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `OCPT` should have a snake case name [INFO] [stdout] --> src/types.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | pub OCPT: serde_json::Value, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `ocpt` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s [INFO] running `Command { std: "docker" "inspect" "1b3b154225126cdf0435d6a479b6972b86200bfbd7f3572630cbb989f3efc495", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1b3b154225126cdf0435d6a479b6972b86200bfbd7f3572630cbb989f3efc495", kill_on_drop: false }` [INFO] [stdout] 1b3b154225126cdf0435d6a479b6972b86200bfbd7f3572630cbb989f3efc495