[INFO] fetching crate dela 0.0.6... [INFO] linting dela-0.0.6 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate dela 0.0.6 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate dela 0.0.6 [INFO] finished tweaking crates.io crate dela 0.0.6 [INFO] tweaked toml for crates.io crate dela 0.0.6 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate dela 0.0.6 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 crates.io crate dela 0.0.6 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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sdd v3.0.7 [INFO] [stderr] Downloaded makefile-lossless v0.2.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 545be03555153c7dd895d82da8d3db55b14214f1d2cb05ce0ff7f96a469cf4ca [INFO] running `Command { std: "docker" "start" "-a" "545be03555153c7dd895d82da8d3db55b14214f1d2cb05ce0ff7f96a469cf4ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "545be03555153c7dd895d82da8d3db55b14214f1d2cb05ce0ff7f96a469cf4ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "545be03555153c7dd895d82da8d3db55b14214f1d2cb05ce0ff7f96a469cf4ca", kill_on_drop: false }` [INFO] [stdout] 545be03555153c7dd895d82da8d3db55b14214f1d2cb05ce0ff7f96a469cf4ca [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bc1f6a2324fec9d7dee4a0c5de1dbe1f6638e2cbac53cc8a5a274e7774f4fa9f [INFO] running `Command { std: "docker" "start" "-a" "bc1f6a2324fec9d7dee4a0c5de1dbe1f6638e2cbac53cc8a5a274e7774f4fa9f", kill_on_drop: false }` [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Checking smallvec v1.14.0 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling syn v2.0.98 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking winnow v0.7.11 [INFO] [stderr] Checking clap_builder v4.5.41 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Compiling rustix v1.0.5 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking toml_writer v1.0.2 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking colored v3.0.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Checking sdd v3.0.7 [INFO] [stderr] Checking roxmltree v0.20.0 [INFO] [stderr] Checking linux-raw-sys v0.9.3 [INFO] [stderr] Checking getrandom v0.3.1 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking rowan v0.16.1 [INFO] [stderr] Checking indexmap v2.7.1 [INFO] [stderr] Checking lru v0.12.5 [INFO] [stderr] Checking scc v2.3.3 [INFO] [stderr] Checking castaway v0.2.4 [INFO] [stderr] Checking compact_str v0.7.1 [INFO] [stderr] Checking makefile-lossless v0.2.1 [INFO] [stderr] Checking crossterm v0.28.1 [INFO] [stderr] Checking unicode-truncate v1.1.0 [INFO] [stderr] Checking toml_parser v1.0.1 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling stability v0.2.1 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Compiling serial_test_derive v3.2.0 [INFO] [stderr] Checking serial_test v3.2.0 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking ratatui v0.27.0 [INFO] [stderr] Checking clap v4.5.41 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking toml_datetime v0.7.0 [INFO] [stderr] Checking serde_spanned v1.0.0 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking toml v0.9.2 [INFO] [stderr] Checking dela v0.0.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: called `unwrap` on `task.shadowed_by` after checking its variant with `is_some` [INFO] [stdout] --> src/commands/list.rs:284:27 [INFO] [stdout] | [INFO] [stdout] 283 | if task.shadowed_by.is_some() { [INFO] [stdout] | ----------------------------- help: try: `if let Some() = &task.shadowed_by` [INFO] [stdout] 284 | match task.shadowed_by.as_ref().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/commands/list.rs:211:29 [INFO] [stdout] | [INFO] [stdout] 211 | let display_width = (max_task_name_width + 4) / 5 * 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `max_task_name_width.div_ceil(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/commands/list.rs:371:35 [INFO] [stdout] | [INFO] [stdout] 371 | let description_part = if let Some(_) = &task.disambiguated_name { [INFO] [stdout] | -------^^^^^^^--------------------------- help: try: `if task.disambiguated_name.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/commands/list.rs:403:28 [INFO] [stdout] | [INFO] [stdout] 403 | } else if is_ambiguous { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 404 | | display_name.dimmed().red() [INFO] [stdout] 405 | | } else if task.shadowed_by.is_some() { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/commands/list.rs:405:42 [INFO] [stdout] | [INFO] [stdout] 405 | } else if task.shadowed_by.is_some() { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 406 | | display_name.dimmed().red() [INFO] [stdout] 407 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> src/parsers/parse_cmake.rs:55:31 [INFO] [stdout] | [INFO] [stdout] 55 | let comment_pattern = Regex::new(r#"COMMENT\s+"([^"]*)"#) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> src/parsers/parse_cmake.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | for captures in target_pattern.captures_iter(&normalized_content) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_github_actions.rs:32:14 [INFO] [stdout] | [INFO] [stdout] 32 | .get(&Value::String("name".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_github_actions.rs:39:39 [INFO] [stdout] | [INFO] [stdout] 39 | let jobs = match workflow_map.get(&Value::String("jobs".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("jobs".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_gradle.rs:134:44 [INFO] [stdout] | [INFO] [stdout] 134 | let description_single_quote_pattern = format!(r"description\s+'([^']*)'"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r"description\s+'([^']*)'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_gradle.rs:135:44 [INFO] [stdout] | [INFO] [stdout] 135 | let description_double_quote_pattern = format!(r#"description\s+"([^"]*)""#); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r#"description\s+"([^"]*)""#.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_makefile.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | return Err(format!("Failed to parse Makefile: Invalid syntax")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Failed to parse Makefile: Invalid syntax".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parsers/parse_pyproject_toml.rs:54:20 [INFO] [stdout] | [INFO] [stdout] 54 | if cfg!(test) [INFO] [stdout] | ____________________^ [INFO] [stdout] 55 | | || (check_path_executable("poetry").is_some() [INFO] [stdout] 56 | | && (cfg!(test) || poetry_lock_exists)) [INFO] [stdout] | |______________________________________________________________^ help: try: `cfg!(test) || check_path_executable("poetry").is_some() && poetry_lock_exists` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_taskfile.rs:55:29 [INFO] [stdout] | [INFO] [stdout] 55 | ... format!("complex command") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"complex command".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:37:60 [INFO] [stdout] | [INFO] [stdout] 37 | if let Some(Value::Mapping(jobs_map)) = config_map.get(&Value::String("jobs".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("jobs".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:60:28 [INFO] [stdout] | [INFO] [stdout] 60 | config_map.get(&Value::String("matrix".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("matrix".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:64:32 [INFO] [stdout] | [INFO] [stdout] 64 | matrix_map.get(&Value::String("include".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("include".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:69:45 [INFO] [stdout] | [INFO] [stdout] 69 | ... include_map.get(&Value::String("name".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:133:60 [INFO] [stdout] | [INFO] [stdout] 133 | if let Some(Value::String(name)) = job_map.get(&Value::String("name".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:138:61 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(Value::String(stage)) = job_map.get(&Value::String("stage".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("stage".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:144:29 [INFO] [stdout] | [INFO] [stdout] 144 | job_map.get(&Value::String("language".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("language".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/task_discovery.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | .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: this `map_or` can be simplified [INFO] [stdout] --> src/task_discovery.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | / discovered [INFO] [stdout] 179 | | .task_name_counts [INFO] [stdout] 180 | | .get(task_name) [INFO] [stdout] 181 | | .map_or(false, |&count| count > 1) [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 181 - .map_or(false, |&count| count > 1) [INFO] [stdout] 181 + .is_some_and(|&count| count > 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/task_discovery.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | / t.disambiguated_name [INFO] [stdout] 202 | | .as_ref() [INFO] [stdout] 203 | | .map_or(false, |dn| dn == task_name) [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 203 - .map_or(false, |dn| dn == task_name) [INFO] [stdout] 203 + .is_some_and(|dn| dn == task_name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/types.rs:272:28 [INFO] [stdout] | [INFO] [stdout] 272 | fn serialize_path(path: &PathBuf, serializer: S) -> Result [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] 272 - fn serialize_path(path: &PathBuf, serializer: S) -> Result [INFO] [stdout] 272 + fn serialize_path(path: &Path, serializer: S) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestEnvironment` is never constructed [INFO] [stdout] --> src/environment.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct TestEnvironment { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task.shadowed_by` after checking its variant with `is_some` [INFO] [stdout] --> src/commands/list.rs:284:27 [INFO] [stdout] | [INFO] [stdout] 283 | if task.shadowed_by.is_some() { [INFO] [stdout] | ----------------------------- help: try: `if let Some() = &task.shadowed_by` [INFO] [stdout] 284 | match task.shadowed_by.as_ref().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/commands/list.rs:211:29 [INFO] [stdout] | [INFO] [stdout] 211 | let display_width = (max_task_name_width + 4) / 5 * 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `max_task_name_width.div_ceil(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/commands/list.rs:371:35 [INFO] [stdout] | [INFO] [stdout] 371 | let description_part = if let Some(_) = &task.disambiguated_name { [INFO] [stdout] | -------^^^^^^^--------------------------- help: try: `if task.disambiguated_name.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/commands/list.rs:403:28 [INFO] [stdout] | [INFO] [stdout] 403 | } else if is_ambiguous { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 404 | | display_name.dimmed().red() [INFO] [stdout] 405 | | } else if task.shadowed_by.is_some() { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/commands/list.rs:405:42 [INFO] [stdout] | [INFO] [stdout] 405 | } else if task.shadowed_by.is_some() { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 406 | | display_name.dimmed().red() [INFO] [stdout] 407 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> src/parsers/parse_cmake.rs:55:31 [INFO] [stdout] | [INFO] [stdout] 55 | let comment_pattern = Regex::new(r#"COMMENT\s+"([^"]*)"#) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> src/parsers/parse_cmake.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | for captures in target_pattern.captures_iter(&normalized_content) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_github_actions.rs:32:14 [INFO] [stdout] | [INFO] [stdout] 32 | .get(&Value::String("name".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_github_actions.rs:39:39 [INFO] [stdout] | [INFO] [stdout] 39 | let jobs = match workflow_map.get(&Value::String("jobs".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("jobs".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_gradle.rs:134:44 [INFO] [stdout] | [INFO] [stdout] 134 | let description_single_quote_pattern = format!(r"description\s+'([^']*)'"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r"description\s+'([^']*)'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_gradle.rs:135:44 [INFO] [stdout] | [INFO] [stdout] 135 | let description_double_quote_pattern = format!(r#"description\s+"([^"]*)""#); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r#"description\s+"([^"]*)""#.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_makefile.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | return Err(format!("Failed to parse Makefile: Invalid syntax")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Failed to parse Makefile: Invalid syntax".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/commands/init.rs:154:42 [INFO] [stdout] | [INFO] [stdout] 154 | fn setup_test_env(shell: &str, home: &PathBuf) -> Result<(), std::io::Error> { [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] 154 - fn setup_test_env(shell: &str, home: &PathBuf) -> Result<(), std::io::Error> { [INFO] [stdout] 154 + fn setup_test_env(shell: &str, home: &Path) -> Result<(), std::io::Error> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parsers/parse_pyproject_toml.rs:54:20 [INFO] [stdout] | [INFO] [stdout] 54 | if cfg!(test) [INFO] [stdout] | ____________________^ [INFO] [stdout] 55 | | || (check_path_executable("poetry").is_some() [INFO] [stdout] 56 | | && (cfg!(test) || poetry_lock_exists)) [INFO] [stdout] | |______________________________________________________________^ help: try: `cfg!(test) || check_path_executable("poetry").is_some() && poetry_lock_exists` [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: called `unwrap` on `task.shadowed_by` after checking its variant with `is_some` [INFO] [stdout] --> src/commands/list.rs:284:27 [INFO] [stdout] | [INFO] [stdout] 283 | if task.shadowed_by.is_some() { [INFO] [stdout] | ----------------------------- help: try: `if let Some() = &task.shadowed_by` [INFO] [stdout] 284 | match task.shadowed_by.as_ref().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/commands/list.rs:211:29 [INFO] [stdout] | [INFO] [stdout] 211 | let display_width = (max_task_name_width + 4) / 5 * 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `max_task_name_width.div_ceil(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_taskfile.rs:55:29 [INFO] [stdout] | [INFO] [stdout] 55 | ... format!("complex command") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"complex command".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:37:60 [INFO] [stdout] | [INFO] [stdout] 37 | if let Some(Value::Mapping(jobs_map)) = config_map.get(&Value::String("jobs".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("jobs".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:60:28 [INFO] [stdout] | [INFO] [stdout] 60 | config_map.get(&Value::String("matrix".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("matrix".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:64:32 [INFO] [stdout] | [INFO] [stdout] 64 | matrix_map.get(&Value::String("include".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("include".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:69:45 [INFO] [stdout] | [INFO] [stdout] 69 | ... include_map.get(&Value::String("name".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:133:60 [INFO] [stdout] | [INFO] [stdout] 133 | if let Some(Value::String(name)) = job_map.get(&Value::String("name".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/commands/list.rs:371:35 [INFO] [stdout] | [INFO] [stdout] 371 | let description_part = if let Some(_) = &task.disambiguated_name { [INFO] [stdout] | -------^^^^^^^--------------------------- help: try: `if task.disambiguated_name.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:138:61 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(Value::String(stage)) = job_map.get(&Value::String("stage".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("stage".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:144:29 [INFO] [stdout] | [INFO] [stdout] 144 | job_map.get(&Value::String("language".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("language".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/commands/list.rs:403:28 [INFO] [stdout] | [INFO] [stdout] 403 | } else if is_ambiguous { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 404 | | display_name.dimmed().red() [INFO] [stdout] 405 | | } else if task.shadowed_by.is_some() { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/commands/list.rs:405:42 [INFO] [stdout] | [INFO] [stdout] 405 | } else if task.shadowed_by.is_some() { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 406 | | display_name.dimmed().red() [INFO] [stdout] 407 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/commands/list.rs:624:9 [INFO] [stdout] | [INFO] [stdout] 624 | discovered_tasks.tasks = tasks; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `task_discovery::DiscoveredTasks { tasks: tasks, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/commands/list.rs:623:9 [INFO] [stdout] | [INFO] [stdout] 623 | let mut discovered_tasks = task_discovery::DiscoveredTasks::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/commands/list.rs:637:29 [INFO] [stdout] | [INFO] [stdout] 637 | let display_width = (max_task_name_width + 4) / 5 * 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `max_task_name_width.div_ceil(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/task_discovery.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | .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: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/commands/list.rs:839:9 [INFO] [stdout] | [INFO] [stdout] 839 | discovered_tasks.tasks = vec![task]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `task_discovery::DiscoveredTasks { tasks: vec![task], ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/commands/list.rs:838:9 [INFO] [stdout] | [INFO] [stdout] 838 | let mut discovered_tasks = task_discovery::DiscoveredTasks::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/task_discovery.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | / discovered [INFO] [stdout] 179 | | .task_name_counts [INFO] [stdout] 180 | | .get(task_name) [INFO] [stdout] 181 | | .map_or(false, |&count| count > 1) [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 181 - .map_or(false, |&count| count > 1) [INFO] [stdout] 181 + .is_some_and(|&count| count > 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/commands/list.rs:860:48 [INFO] [stdout] | [INFO] [stdout] 860 | let formatted_task = format_task_entry(&act_tasks[0], false, 20); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `act_tasks[0]` [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 `map_or` can be simplified [INFO] [stdout] --> src/task_discovery.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | / t.disambiguated_name [INFO] [stdout] 202 | | .as_ref() [INFO] [stdout] 203 | | .map_or(false, |dn| dn == task_name) [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 203 - .map_or(false, |dn| dn == task_name) [INFO] [stdout] 203 + .is_some_and(|dn| dn == task_name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> src/parsers/parse_cmake.rs:55:31 [INFO] [stdout] | [INFO] [stdout] 55 | let comment_pattern = Regex::new(r#"COMMENT\s+"([^"]*)"#) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> src/parsers/parse_cmake.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | for captures in target_pattern.captures_iter(&normalized_content) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/types.rs:272:28 [INFO] [stdout] | [INFO] [stdout] 272 | fn serialize_path(path: &PathBuf, serializer: S) -> Result [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] 272 - fn serialize_path(path: &PathBuf, serializer: S) -> Result [INFO] [stdout] 272 + fn serialize_path(path: &Path, serializer: S) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_github_actions.rs:32:14 [INFO] [stdout] | [INFO] [stdout] 32 | .get(&Value::String("name".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_github_actions.rs:39:39 [INFO] [stdout] | [INFO] [stdout] 39 | let jobs = match workflow_map.get(&Value::String("jobs".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("jobs".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parsers/parse_github_actions.rs:121:46 [INFO] [stdout] | [INFO] [stdout] 121 | let file_path = create_test_workflow(&temp_dir.path(), "workflow.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_github_actions.rs:199:34 [INFO] [stdout] | [INFO] [stdout] 199 | create_test_workflow(&temp_dir.path(), "complex-workflow.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_github_actions.rs:287:34 [INFO] [stdout] | [INFO] [stdout] 287 | create_test_workflow(&temp_dir.path(), "unnamed-workflow.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_github_actions.rs:315:34 [INFO] [stdout] | [INFO] [stdout] 315 | create_test_workflow(&temp_dir.path(), "invalid-workflow.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_github_actions.rs:326:46 [INFO] [stdout] | [INFO] [stdout] 326 | let file_path = create_test_workflow(&temp_dir.path(), "no-jobs.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_gradle.rs:134:44 [INFO] [stdout] | [INFO] [stdout] 134 | let description_single_quote_pattern = format!(r"description\s+'([^']*)'"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r"description\s+'([^']*)'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_gradle.rs:135:44 [INFO] [stdout] | [INFO] [stdout] 135 | let description_double_quote_pattern = format!(r#"description\s+"([^"]*)""#); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r#"description\s+"([^"]*)""#.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_makefile.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | return Err(format!("Failed to parse Makefile: Invalid syntax")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Failed to parse Makefile: Invalid syntax".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parsers/parse_pyproject_toml.rs:54:20 [INFO] [stdout] | [INFO] [stdout] 54 | if cfg!(test) [INFO] [stdout] | ____________________^ [INFO] [stdout] 55 | | || (check_path_executable("poetry").is_some() [INFO] [stdout] 56 | | && (cfg!(test) || poetry_lock_exists)) [INFO] [stdout] | |______________________________________________________________^ help: try: `cfg!(test) || check_path_executable("poetry").is_some() && poetry_lock_exists` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_taskfile.rs:55:29 [INFO] [stdout] | [INFO] [stdout] 55 | ... format!("complex command") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"complex command".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:37:60 [INFO] [stdout] | [INFO] [stdout] 37 | if let Some(Value::Mapping(jobs_map)) = config_map.get(&Value::String("jobs".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("jobs".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:60:28 [INFO] [stdout] | [INFO] [stdout] 60 | config_map.get(&Value::String("matrix".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("matrix".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:64:32 [INFO] [stdout] | [INFO] [stdout] 64 | matrix_map.get(&Value::String("include".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("include".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:69:45 [INFO] [stdout] | [INFO] [stdout] 69 | ... include_map.get(&Value::String("name".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:133:60 [INFO] [stdout] | [INFO] [stdout] 133 | if let Some(Value::String(name)) = job_map.get(&Value::String("name".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:138:61 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(Value::String(stage)) = job_map.get(&Value::String("stage".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("stage".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:144:29 [INFO] [stdout] | [INFO] [stdout] 144 | job_map.get(&Value::String("language".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("language".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:188:51 [INFO] [stdout] | [INFO] [stdout] 188 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", travis_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_travis_ci.rs:234:51 [INFO] [stdout] | [INFO] [stdout] 234 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", travis_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_travis_ci.rs:267:51 [INFO] [stdout] | [INFO] [stdout] 267 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", travis_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_travis_ci.rs:303:51 [INFO] [stdout] | [INFO] [stdout] 303 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", invalid_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_travis_ci.rs:313:51 [INFO] [stdout] | [INFO] [stdout] 313 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", ""); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/task_discovery.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | .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: this `map_or` can be simplified [INFO] [stdout] --> src/task_discovery.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | / discovered [INFO] [stdout] 179 | | .task_name_counts [INFO] [stdout] 180 | | .get(task_name) [INFO] [stdout] 181 | | .map_or(false, |&count| count > 1) [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 181 - .map_or(false, |&count| count > 1) [INFO] [stdout] 181 + .is_some_and(|&count| count > 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/task_discovery.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | / t.disambiguated_name [INFO] [stdout] 202 | | .as_ref() [INFO] [stdout] 203 | | .map_or(false, |dn| dn == task_name) [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 203 - .map_or(false, |dn| dn == task_name) [INFO] [stdout] 203 + .is_some_and(|dn| dn == task_name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/task_discovery.rs:786:21 [INFO] [stdout] | [INFO] [stdout] 786 | execute_fn: Box Result<(), 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] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/types.rs:272:28 [INFO] [stdout] | [INFO] [stdout] 272 | fn serialize_path(path: &PathBuf, serializer: S) -> Result [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] 272 - fn serialize_path(path: &PathBuf, serializer: S) -> Result [INFO] [stdout] 272 + fn serialize_path(path: &Path, serializer: S) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/prompt.rs:251:23 [INFO] [stdout] | [INFO] [stdout] 251 | let options = vec![ [INFO] [stdout] | _______________________^ [INFO] [stdout] 252 | | ( [INFO] [stdout] 253 | | "Allow once (this time only)", [INFO] [stdout] 254 | | AllowDecision::Allow(AllowScope::Once), [INFO] [stdout] ... | [INFO] [stdout] 268 | | ("Deny (don't run this task)", AllowDecision::Deny), [INFO] [stdout] 269 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 251 ~ let options = [( [INFO] [stdout] 252 + "Allow once (this time only)", [INFO] [stdout] 253 + AllowDecision::Allow(AllowScope::Once), [INFO] [stdout] 254 + ), [INFO] [stdout] 255 + ( [INFO] [stdout] 256 + "Allow this task (remember for this task)", [INFO] [stdout] 257 + AllowDecision::Allow(AllowScope::Task), [INFO] [stdout] 258 + ), [INFO] [stdout] 259 + ( [INFO] [stdout] 260 + "Allow file (remember for all tasks in this file)", [INFO] [stdout] 261 + AllowDecision::Allow(AllowScope::File), [INFO] [stdout] 262 + ), [INFO] [stdout] 263 + ( [INFO] [stdout] 264 + "Allow directory (remember for all tasks in this directory)", [INFO] [stdout] 265 + AllowDecision::Allow(AllowScope::Directory), [INFO] [stdout] 266 + ), [INFO] [stdout] 267 ~ ("Deny (don't run this task)", AllowDecision::Deny)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/commands/init.rs:154:42 [INFO] [stdout] | [INFO] [stdout] 154 | fn setup_test_env(shell: &str, home: &PathBuf) -> Result<(), std::io::Error> { [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] 154 - fn setup_test_env(shell: &str, home: &PathBuf) -> Result<(), std::io::Error> { [INFO] [stdout] 154 + fn setup_test_env(shell: &str, home: &Path) -> Result<(), std::io::Error> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task.shadowed_by` after checking its variant with `is_some` [INFO] [stdout] --> src/commands/list.rs:284:27 [INFO] [stdout] | [INFO] [stdout] 283 | if task.shadowed_by.is_some() { [INFO] [stdout] | ----------------------------- help: try: `if let Some() = &task.shadowed_by` [INFO] [stdout] 284 | match task.shadowed_by.as_ref().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/commands/list.rs:211:29 [INFO] [stdout] | [INFO] [stdout] 211 | let display_width = (max_task_name_width + 4) / 5 * 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `max_task_name_width.div_ceil(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/commands/list.rs:371:35 [INFO] [stdout] | [INFO] [stdout] 371 | let description_part = if let Some(_) = &task.disambiguated_name { [INFO] [stdout] | -------^^^^^^^--------------------------- help: try: `if task.disambiguated_name.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/commands/list.rs:403:28 [INFO] [stdout] | [INFO] [stdout] 403 | } else if is_ambiguous { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 404 | | display_name.dimmed().red() [INFO] [stdout] 405 | | } else if task.shadowed_by.is_some() { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/commands/list.rs:405:42 [INFO] [stdout] | [INFO] [stdout] 405 | } else if task.shadowed_by.is_some() { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 406 | | display_name.dimmed().red() [INFO] [stdout] 407 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/commands/list.rs:624:9 [INFO] [stdout] | [INFO] [stdout] 624 | discovered_tasks.tasks = tasks; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `task_discovery::DiscoveredTasks { tasks: tasks, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/commands/list.rs:623:9 [INFO] [stdout] | [INFO] [stdout] 623 | let mut discovered_tasks = task_discovery::DiscoveredTasks::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/commands/list.rs:637:29 [INFO] [stdout] | [INFO] [stdout] 637 | let display_width = (max_task_name_width + 4) / 5 * 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `max_task_name_width.div_ceil(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/commands/list.rs:839:9 [INFO] [stdout] | [INFO] [stdout] 839 | discovered_tasks.tasks = vec![task]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `task_discovery::DiscoveredTasks { tasks: vec![task], ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/commands/list.rs:838:9 [INFO] [stdout] | [INFO] [stdout] 838 | let mut discovered_tasks = task_discovery::DiscoveredTasks::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/commands/list.rs:860:48 [INFO] [stdout] | [INFO] [stdout] 860 | let formatted_task = format_task_entry(&act_tasks[0], false, 20); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `act_tasks[0]` [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: compiling a regex in a loop [INFO] [stdout] --> src/parsers/parse_cmake.rs:55:31 [INFO] [stdout] | [INFO] [stdout] 55 | let comment_pattern = Regex::new(r#"COMMENT\s+"([^"]*)"#) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> src/parsers/parse_cmake.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | for captures in target_pattern.captures_iter(&normalized_content) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_github_actions.rs:32:14 [INFO] [stdout] | [INFO] [stdout] 32 | .get(&Value::String("name".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_github_actions.rs:39:39 [INFO] [stdout] | [INFO] [stdout] 39 | let jobs = match workflow_map.get(&Value::String("jobs".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("jobs".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parsers/parse_github_actions.rs:121:46 [INFO] [stdout] | [INFO] [stdout] 121 | let file_path = create_test_workflow(&temp_dir.path(), "workflow.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_github_actions.rs:199:34 [INFO] [stdout] | [INFO] [stdout] 199 | create_test_workflow(&temp_dir.path(), "complex-workflow.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_github_actions.rs:287:34 [INFO] [stdout] | [INFO] [stdout] 287 | create_test_workflow(&temp_dir.path(), "unnamed-workflow.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_github_actions.rs:315:34 [INFO] [stdout] | [INFO] [stdout] 315 | create_test_workflow(&temp_dir.path(), "invalid-workflow.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_github_actions.rs:326:46 [INFO] [stdout] | [INFO] [stdout] 326 | let file_path = create_test_workflow(&temp_dir.path(), "no-jobs.yml", workflow_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_gradle.rs:134:44 [INFO] [stdout] | [INFO] [stdout] 134 | let description_single_quote_pattern = format!(r"description\s+'([^']*)'"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r"description\s+'([^']*)'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_gradle.rs:135:44 [INFO] [stdout] | [INFO] [stdout] 135 | let description_double_quote_pattern = format!(r#"description\s+"([^"]*)""#); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r#"description\s+"([^"]*)""#.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_makefile.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | return Err(format!("Failed to parse Makefile: Invalid syntax")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Failed to parse Makefile: Invalid syntax".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parsers/parse_pyproject_toml.rs:54:20 [INFO] [stdout] | [INFO] [stdout] 54 | if cfg!(test) [INFO] [stdout] | ____________________^ [INFO] [stdout] 55 | | || (check_path_executable("poetry").is_some() [INFO] [stdout] 56 | | && (cfg!(test) || poetry_lock_exists)) [INFO] [stdout] | |______________________________________________________________^ help: try: `cfg!(test) || check_path_executable("poetry").is_some() && poetry_lock_exists` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parsers/parse_taskfile.rs:55:29 [INFO] [stdout] | [INFO] [stdout] 55 | ... format!("complex command") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"complex command".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:37:60 [INFO] [stdout] | [INFO] [stdout] 37 | if let Some(Value::Mapping(jobs_map)) = config_map.get(&Value::String("jobs".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("jobs".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:60:28 [INFO] [stdout] | [INFO] [stdout] 60 | config_map.get(&Value::String("matrix".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("matrix".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:64:32 [INFO] [stdout] | [INFO] [stdout] 64 | matrix_map.get(&Value::String("include".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("include".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:69:45 [INFO] [stdout] | [INFO] [stdout] 69 | ... include_map.get(&Value::String("name".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:133:60 [INFO] [stdout] | [INFO] [stdout] 133 | if let Some(Value::String(name)) = job_map.get(&Value::String("name".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("name".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:138:61 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(Value::String(stage)) = job_map.get(&Value::String("stage".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("stage".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:144:29 [INFO] [stdout] | [INFO] [stdout] 144 | job_map.get(&Value::String("language".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("language".to_string())` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parsers/parse_travis_ci.rs:188:51 [INFO] [stdout] | [INFO] [stdout] 188 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", travis_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_travis_ci.rs:234:51 [INFO] [stdout] | [INFO] [stdout] 234 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", travis_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_travis_ci.rs:267:51 [INFO] [stdout] | [INFO] [stdout] 267 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", travis_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_travis_ci.rs:303:51 [INFO] [stdout] | [INFO] [stdout] 303 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", invalid_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/parsers/parse_travis_ci.rs:313:51 [INFO] [stdout] | [INFO] [stdout] 313 | let file_path = create_test_travis_config(&temp_dir.path(), ".travis.yml", ""); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = 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/task_discovery.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | .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: this `map_or` can be simplified [INFO] [stdout] --> src/task_discovery.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | / discovered [INFO] [stdout] 179 | | .task_name_counts [INFO] [stdout] 180 | | .get(task_name) [INFO] [stdout] 181 | | .map_or(false, |&count| count > 1) [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 181 - .map_or(false, |&count| count > 1) [INFO] [stdout] 181 + .is_some_and(|&count| count > 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/task_discovery.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | / t.disambiguated_name [INFO] [stdout] 202 | | .as_ref() [INFO] [stdout] 203 | | .map_or(false, |dn| dn == task_name) [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 203 - .map_or(false, |dn| dn == task_name) [INFO] [stdout] 203 + .is_some_and(|dn| dn == task_name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/task_discovery.rs:786:21 [INFO] [stdout] | [INFO] [stdout] 786 | execute_fn: Box Result<(), 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] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/types.rs:272:28 [INFO] [stdout] | [INFO] [stdout] 272 | fn serialize_path(path: &PathBuf, serializer: S) -> Result [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] 272 - fn serialize_path(path: &PathBuf, serializer: S) -> Result [INFO] [stdout] 272 + fn serialize_path(path: &Path, serializer: S) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/prompt.rs:251:23 [INFO] [stdout] | [INFO] [stdout] 251 | let options = vec![ [INFO] [stdout] | _______________________^ [INFO] [stdout] 252 | | ( [INFO] [stdout] 253 | | "Allow once (this time only)", [INFO] [stdout] 254 | | AllowDecision::Allow(AllowScope::Once), [INFO] [stdout] ... | [INFO] [stdout] 268 | | ("Deny (don't run this task)", AllowDecision::Deny), [INFO] [stdout] 269 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 251 ~ let options = [( [INFO] [stdout] 252 + "Allow once (this time only)", [INFO] [stdout] 253 + AllowDecision::Allow(AllowScope::Once), [INFO] [stdout] 254 + ), [INFO] [stdout] 255 + ( [INFO] [stdout] 256 + "Allow this task (remember for this task)", [INFO] [stdout] 257 + AllowDecision::Allow(AllowScope::Task), [INFO] [stdout] 258 + ), [INFO] [stdout] 259 + ( [INFO] [stdout] 260 + "Allow file (remember for all tasks in this file)", [INFO] [stdout] 261 + AllowDecision::Allow(AllowScope::File), [INFO] [stdout] 262 + ), [INFO] [stdout] 263 + ( [INFO] [stdout] 264 + "Allow directory (remember for all tasks in this directory)", [INFO] [stdout] 265 + AllowDecision::Allow(AllowScope::Directory), [INFO] [stdout] 266 + ), [INFO] [stdout] 267 ~ ("Deny (don't run this task)", AllowDecision::Deny)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.31s [INFO] running `Command { std: "docker" "inspect" "bc1f6a2324fec9d7dee4a0c5de1dbe1f6638e2cbac53cc8a5a274e7774f4fa9f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bc1f6a2324fec9d7dee4a0c5de1dbe1f6638e2cbac53cc8a5a274e7774f4fa9f", kill_on_drop: false }` [INFO] [stdout] bc1f6a2324fec9d7dee4a0c5de1dbe1f6638e2cbac53cc8a5a274e7774f4fa9f