[INFO] fetching crate journey-cli 0.9.11... [INFO] linting journey-cli-0.9.11 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate journey-cli 0.9.11 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate journey-cli 0.9.11 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate journey-cli 0.9.11 [INFO] tweaked toml for crates.io crate journey-cli 0.9.11 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate journey-cli 0.9.11 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 journey-cli 0.9.11 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serde_yaml_ng v0.10.0 [INFO] [stderr] Downloaded sdd v3.0.10 [INFO] [stderr] Downloaded scc v2.4.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3cf1128b6b2c9615e5e0acc6af6eb3d374ce9b75edf1f3b453613335b4d1f9e2 [INFO] running `Command { std: "docker" "start" "-a" "3cf1128b6b2c9615e5e0acc6af6eb3d374ce9b75edf1f3b453613335b4d1f9e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3cf1128b6b2c9615e5e0acc6af6eb3d374ce9b75edf1f3b453613335b4d1f9e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3cf1128b6b2c9615e5e0acc6af6eb3d374ce9b75edf1f3b453613335b4d1f9e2", kill_on_drop: false }` [INFO] [stdout] 3cf1128b6b2c9615e5e0acc6af6eb3d374ce9b75edf1f3b453613335b4d1f9e2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4629d9e497f4b6fd554cd71384fcc52e24556e7078e464b55d2a5be489fb2edb [INFO] running `Command { std: "docker" "start" "-a" "4629d9e497f4b6fd554cd71384fcc52e24556e7078e464b55d2a5be489fb2edb", kill_on_drop: false }` [INFO] [stderr] Checking anstyle-query v1.1.4 [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking serde_json v1.0.145 [INFO] [stderr] Checking sdd v3.0.10 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking log v0.4.28 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Checking clap_builder v4.5.50 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking scc v2.4.0 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling serial_test_derive v3.2.0 [INFO] [stderr] Checking serial_test v3.2.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking clap v4.5.50 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking serde_yaml_ng v0.10.0 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Checking journey-cli v0.9.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: value assigned to `in_section` is never read [INFO] [stdout] --> src/vault.rs:1256:17 [INFO] [stdout] | [INFO] [stdout] 1256 | in_section = false; [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: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/app.rs:263:16 [INFO] [stdout] | [INFO] [stdout] 263 | if let Some(_) = &plugin_configs.daily_notes { [INFO] [stdout] | -------^^^^^^^------------------------------ help: try: `if plugin_configs.daily_notes.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: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/app.rs:269:16 [INFO] [stdout] | [INFO] [stdout] 269 | if let Some(_) = &plugin_configs.periodic_notes { [INFO] [stdout] | -------^^^^^^^--------------------------------- help: try: `if plugin_configs.periodic_notes.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/app.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 474 | if !plugin_data.get("journals").is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `plugin_data.get("journals").is_none()` [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: redundant closure [INFO] [stdout] --> src/app.rs:735:22 [INFO] [stdout] | [INFO] [stdout] 735 | .map_err(|e| JourneyError::Config(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `JourneyError::Config` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config.rs:54:1 [INFO] [stdout] | [INFO] [stdout] 54 | / impl Default for NoteFormat { [INFO] [stdout] 55 | | fn default() -> Self { [INFO] [stdout] 56 | | NoteFormat::Bullet [INFO] [stdout] 57 | | } [INFO] [stdout] 58 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 47 + #[derive(Default)] [INFO] [stdout] 48 | pub enum NoteFormat { [INFO] [stdout] 49 | #[serde(rename = "bullet")] [INFO] [stdout] 50 ~ #[default] [INFO] [stdout] 51 ~ Bullet, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | / impl Default for Config { [INFO] [stdout] 79 | | fn default() -> Self { [INFO] [stdout] 80 | | Self { [INFO] [stdout] 81 | | vaults: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 85 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 13 + #[derive(Default)] [INFO] [stdout] 14 | pub struct Config { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/config.rs:139:38 [INFO] [stdout] | [INFO] [stdout] 139 | PathBuf::from(home).join(&path[2..]) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/config.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | if path.starts_with("~/") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 126 ~ if let Some() = path.strip_prefix("~/") { [INFO] [stdout] 127 | // Try to get home directory from environment variables [INFO] [stdout] ... [INFO] [stdout] 138 | if let Some(home) = home_dir { [INFO] [stdout] 139 ~ PathBuf::from(home).join() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/date_time.rs:185:70 [INFO] [stdout] | [INFO] [stdout] 185 | Local.from_local_datetime(&naive_dt).single().unwrap_or_else(|| Local::now()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Local::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `lines` [INFO] [stdout] --> src/vault.rs:319:18 [INFO] [stdout] | [INFO] [stdout] 319 | for i in (section_start + 1)..lines.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 319 - for i in (section_start + 1)..lines.len() { [INFO] [stdout] 319 + for (i, ) in lines.iter().enumerate().skip((section_start + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `lines` [INFO] [stdout] --> src/vault.rs:333:18 [INFO] [stdout] | [INFO] [stdout] 333 | for i in section_start + 1..section_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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 333 - for i in section_start + 1..section_end { [INFO] [stdout] 333 + for (i, ) in lines.iter().enumerate().take(section_end).skip(section_start + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/vault.rs:435:9 [INFO] [stdout] | [INFO] [stdout] 435 | phrases.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 435 - phrases.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] 435 + phrases.sort_by_key(|b| std::cmp::Reverse(b.0.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/vault.rs:512:27 [INFO] [stdout] | [INFO] [stdout] 512 | 5 => if short { "May".to_string() } else { "May".to_string() }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/vault.rs:512:54 [INFO] [stdout] | [INFO] [stdout] 512 | 5 => if short { "May".to_string() } else { "May".to_string() }, [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: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/app.rs:263:16 [INFO] [stdout] | [INFO] [stdout] 263 | if let Some(_) = &plugin_configs.daily_notes { [INFO] [stdout] | -------^^^^^^^------------------------------ help: try: `if plugin_configs.daily_notes.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: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/app.rs:269:16 [INFO] [stdout] | [INFO] [stdout] 269 | if let Some(_) = &plugin_configs.periodic_notes { [INFO] [stdout] | -------^^^^^^^--------------------------------- help: try: `if plugin_configs.periodic_notes.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] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cols.get(0)` [INFO] [stdout] --> src/vault.rs:553:45 [INFO] [stdout] | [INFO] [stdout] 553 | if let Some(time_str) = cols.get(0) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `cols.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `lines` [INFO] [stdout] --> src/vault.rs:571:18 [INFO] [stdout] | [INFO] [stdout] 571 | for i in section_start + 1..section_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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 571 - for i in section_start + 1..section_end { [INFO] [stdout] 571 + for (i, ) in lines.iter().enumerate().take(section_end).skip(section_start + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cols.get(0)` [INFO] [stdout] --> src/vault.rs:592:25 [INFO] [stdout] | [INFO] [stdout] 592 | cols.get(0).and_then(|ts| chrono::NaiveTime::parse_from_str(ts, "%H:%M:%S") [INFO] [stdout] | ^^^^^^^^^^^ help: try: `cols.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/app.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 474 | if !plugin_data.get("journals").is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `plugin_data.get("journals").is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/vault.rs:860:20 [INFO] [stdout] | [INFO] [stdout] 860 | } else if line.trim().is_empty() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 861 | | if in_data_section { [INFO] [stdout] 862 | | blank_line_found = true; [INFO] [stdout] 863 | | } [INFO] [stdout] 864 | | } [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] 860 ~ } else if line.trim().is_empty() [INFO] [stdout] 861 ~ && in_data_section { [INFO] [stdout] 862 | blank_line_found = true; [INFO] [stdout] 863 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/vault.rs:937:20 [INFO] [stdout] | [INFO] [stdout] 937 | } else if line.trim().is_empty() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 938 | | if in_data_section { [INFO] [stdout] 939 | | blank_line_found = true; [INFO] [stdout] 940 | | } [INFO] [stdout] 941 | | } [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] 937 ~ } else if line.trim().is_empty() [INFO] [stdout] 938 ~ && in_data_section { [INFO] [stdout] 939 | blank_line_found = true; [INFO] [stdout] 940 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/vault.rs:1045:20 [INFO] [stdout] | [INFO] [stdout] 1045 | } else if line.trim().is_empty() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1046 | | if in_table { [INFO] [stdout] 1047 | | blank_line_found = true; [INFO] [stdout] 1048 | | } [INFO] [stdout] 1049 | | } [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] 1045 ~ } else if line.trim().is_empty() [INFO] [stdout] 1046 ~ && in_table { [INFO] [stdout] 1047 | blank_line_found = true; [INFO] [stdout] 1048 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/vault.rs:1099:20 [INFO] [stdout] | [INFO] [stdout] 1099 | } else if line.trim().is_empty() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1100 | | if in_bullet_section { [INFO] [stdout] 1101 | | blank_line_found = true; [INFO] [stdout] 1102 | | } [INFO] [stdout] 1103 | | } [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] 1099 ~ } else if line.trim().is_empty() [INFO] [stdout] 1100 ~ && in_bullet_section { [INFO] [stdout] 1101 | blank_line_found = true; [INFO] [stdout] 1102 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/app.rs:735:22 [INFO] [stdout] | [INFO] [stdout] 735 | .map_err(|e| JourneyError::Config(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `JourneyError::Config` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/vault.rs:1152:20 [INFO] [stdout] | [INFO] [stdout] 1152 | } else if line.trim().is_empty() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1153 | | if in_notes_section { [INFO] [stdout] 1154 | | blank_line_found = true; [INFO] [stdout] 1155 | | } [INFO] [stdout] 1156 | | } [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] 1152 ~ } else if line.trim().is_empty() [INFO] [stdout] 1153 ~ && in_notes_section { [INFO] [stdout] 1154 | blank_line_found = true; [INFO] [stdout] 1155 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/vault.rs:1198:20 [INFO] [stdout] | [INFO] [stdout] 1198 | } else if line.trim().is_empty() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1199 | | if in_notes_section { [INFO] [stdout] 1200 | | blank_line_found = true; [INFO] [stdout] 1201 | | } [INFO] [stdout] 1202 | | } [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] 1198 ~ } else if line.trim().is_empty() [INFO] [stdout] 1199 ~ && in_notes_section { [INFO] [stdout] 1200 | blank_line_found = true; [INFO] [stdout] 1201 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/vault.rs:1352:20 [INFO] [stdout] | [INFO] [stdout] 1352 | } else if line.trim().is_empty() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1353 | | if in_table { [INFO] [stdout] 1354 | | blank_line_found = true; [INFO] [stdout] 1355 | | } [INFO] [stdout] 1356 | | } [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] 1352 ~ } else if line.trim().is_empty() [INFO] [stdout] 1353 ~ && in_table { [INFO] [stdout] 1354 | blank_line_found = true; [INFO] [stdout] 1355 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config.rs:54:1 [INFO] [stdout] | [INFO] [stdout] 54 | / impl Default for NoteFormat { [INFO] [stdout] 55 | | fn default() -> Self { [INFO] [stdout] 56 | | NoteFormat::Bullet [INFO] [stdout] 57 | | } [INFO] [stdout] 58 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 47 + #[derive(Default)] [INFO] [stdout] 48 | pub enum NoteFormat { [INFO] [stdout] 49 | #[serde(rename = "bullet")] [INFO] [stdout] 50 ~ #[default] [INFO] [stdout] 51 ~ Bullet, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | / impl Default for Config { [INFO] [stdout] 79 | | fn default() -> Self { [INFO] [stdout] 80 | | Self { [INFO] [stdout] 81 | | vaults: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 85 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 13 + #[derive(Default)] [INFO] [stdout] 14 | pub struct Config { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/config.rs:139:38 [INFO] [stdout] | [INFO] [stdout] 139 | PathBuf::from(home).join(&path[2..]) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/config.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | if path.starts_with("~/") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 126 ~ if let Some() = path.strip_prefix("~/") { [INFO] [stdout] 127 | // Try to get home directory from environment variables [INFO] [stdout] ... [INFO] [stdout] 138 | if let Some(home) = home_dir { [INFO] [stdout] 139 ~ PathBuf::from(home).join() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/date_time.rs:185:70 [INFO] [stdout] | [INFO] [stdout] 185 | Local.from_local_datetime(&naive_dt).single().unwrap_or_else(|| Local::now()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Local::now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `lines` [INFO] [stdout] --> src/vault.rs:319:18 [INFO] [stdout] | [INFO] [stdout] 319 | for i in (section_start + 1)..lines.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 319 - for i in (section_start + 1)..lines.len() { [INFO] [stdout] 319 + for (i, ) in lines.iter().enumerate().skip((section_start + 1)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `lines` [INFO] [stdout] --> src/vault.rs:333:18 [INFO] [stdout] | [INFO] [stdout] 333 | for i in section_start + 1..section_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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 333 - for i in section_start + 1..section_end { [INFO] [stdout] 333 + for (i, ) in lines.iter().enumerate().take(section_end).skip(section_start + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/vault.rs:435:9 [INFO] [stdout] | [INFO] [stdout] 435 | phrases.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 435 - phrases.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] 435 + phrases.sort_by_key(|b| std::cmp::Reverse(b.0.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/vault.rs:512:27 [INFO] [stdout] | [INFO] [stdout] 512 | 5 => if short { "May".to_string() } else { "May".to_string() }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/vault.rs:512:54 [INFO] [stdout] | [INFO] [stdout] 512 | 5 => if short { "May".to_string() } else { "May".to_string() }, [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: accessing first element with `cols.get(0)` [INFO] [stdout] --> src/vault.rs:553:45 [INFO] [stdout] | [INFO] [stdout] 553 | if let Some(time_str) = cols.get(0) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `cols.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `lines` [INFO] [stdout] --> src/vault.rs:571:18 [INFO] [stdout] | [INFO] [stdout] 571 | for i in section_start + 1..section_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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 571 - for i in section_start + 1..section_end { [INFO] [stdout] 571 + for (i, ) in lines.iter().enumerate().take(section_end).skip(section_start + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cols.get(0)` [INFO] [stdout] --> src/vault.rs:592:25 [INFO] [stdout] | [INFO] [stdout] 592 | cols.get(0).and_then(|ts| chrono::NaiveTime::parse_from_str(ts, "%H:%M:%S") [INFO] [stdout] | ^^^^^^^^^^^ help: try: `cols.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> tests/config_manager_tests.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [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::path::PathBuf` [INFO] [stdout] --> tests/config_manager_tests.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> tests/default_vault_tests.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [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::path::PathBuf` [INFO] [stdout] --> tests/default_vault_tests.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> tests/vault_tests.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [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::collections::HashMap` [INFO] [stdout] --> tests/template_variable_tests.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::from_local_date`: use `from_local_datetime()` instead [INFO] [stdout] --> tests/template_variable_tests.rs:42:27 [INFO] [stdout] | [INFO] [stdout] 42 | let timestamp = Local.from_local_date(&test_date).unwrap().and_hms_opt(14, 30, 0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::from_local_date`: use `from_local_datetime()` instead [INFO] [stdout] --> tests/template_variable_tests.rs:85:27 [INFO] [stdout] | [INFO] [stdout] 85 | let timestamp = Local.from_local_date(&test_date).unwrap().and_hms_opt(12, 0, 0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> tests/app_tests.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [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::path::PathBuf` [INFO] [stdout] --> tests/cli_tests.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::PathBuf; [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::collections::HashMap` [INFO] [stdout] --> tests/config_tests.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/cli_tests.rs:7:35 [INFO] [stdout] | [INFO] [stdout] 7 | let cli = Cli::try_parse_from(&["journey", "test note"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "test note"]` [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] --> tests/cli_tests.rs:16:35 [INFO] [stdout] | [INFO] [stdout] 16 | let cli = Cli::try_parse_from(&["journey", "--list"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--list"]` [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] --> tests/cli_tests.rs:23:35 [INFO] [stdout] | [INFO] [stdout] 23 | let cli = Cli::try_parse_from(&["journey", "--edit"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--edit"]` [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] --> tests/cli_tests.rs:30:35 [INFO] [stdout] | [INFO] [stdout] 30 | let cli = Cli::try_parse_from(&["journey", "--vault", "test", "note"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--vault", "test", "note"]` [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] --> tests/cli_tests.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | let cli = Cli::try_parse_from(&["journey", "-v"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "-v"]` [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] --> tests/cli_tests.rs:43:35 [INFO] [stdout] | [INFO] [stdout] 43 | let cli = Cli::try_parse_from(&["journey", "--version"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--version"]` [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] --> tests/cli_tests.rs:49:35 [INFO] [stdout] | [INFO] [stdout] 49 | let cli = Cli::try_parse_from(&["journey", "--date", "2025-10-24", "note"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--date", "2025-10-24", "note"]` [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] --> tests/cli_tests.rs:56:35 [INFO] [stdout] | [INFO] [stdout] 56 | let cli = Cli::try_parse_from(&["journey", "--relative-date", "1", "note"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--relative-date", "1", "note"]` [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] --> tests/cli_tests.rs:63:35 [INFO] [stdout] | [INFO] [stdout] 63 | let cli = Cli::try_parse_from(&["journey", "--time", "14:30", "note"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--time", "14:30", "note"]` [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] --> tests/cli_tests.rs:70:35 [INFO] [stdout] | [INFO] [stdout] 70 | let cli = Cli::try_parse_from(&["journey", "add", "test note"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "add", "test note"]` [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] --> tests/cli_tests.rs:81:35 [INFO] [stdout] | [INFO] [stdout] 81 | let cli = Cli::try_parse_from(&["journey", "list"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "list"]` [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] --> tests/cli_tests.rs:92:35 [INFO] [stdout] | [INFO] [stdout] 92 | let cli = Cli::try_parse_from(&["journey", "edit"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "edit"]` [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] --> tests/cli_tests.rs:103:35 [INFO] [stdout] | [INFO] [stdout] 103 | let cli = Cli::try_parse_from(&["journey", "--stdin"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--stdin"]` [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] --> tests/cli_tests.rs:112:35 [INFO] [stdout] | [INFO] [stdout] 112 | let cli = Cli::try_parse_from(&["journey", "--stdin", "--time", "14:30"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--stdin", "--time", "14:30"]` [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] --> tests/cli_tests.rs:119:35 [INFO] [stdout] | [INFO] [stdout] 119 | let cli = Cli::try_parse_from(&["journey", "--stdin", "--date", "2025-10-24"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--stdin", "--date", "2025-10-24"]` [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] --> tests/cli_tests.rs:126:35 [INFO] [stdout] | [INFO] [stdout] 126 | let cli = Cli::try_parse_from(&["journey", "--stdin", "--vault", "test-vault"]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["journey", "--stdin", "--vault", "test-vault"]` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.12s [INFO] running `Command { std: "docker" "inspect" "4629d9e497f4b6fd554cd71384fcc52e24556e7078e464b55d2a5be489fb2edb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4629d9e497f4b6fd554cd71384fcc52e24556e7078e464b55d2a5be489fb2edb", kill_on_drop: false }` [INFO] [stdout] 4629d9e497f4b6fd554cd71384fcc52e24556e7078e464b55d2a5be489fb2edb