[INFO] fetching crate freneng 0.1.2... [INFO] linting freneng-0.1.2 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate freneng 0.1.2 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate freneng 0.1.2 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate freneng 0.1.2 [INFO] tweaked toml for crates.io crate freneng 0.1.2 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate freneng 0.1.2 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 freneng 0.1.2 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 264d941c71b81c1bde317bb7182614c0ed3afd564f9f86c0055411c7668995b9 [INFO] running `Command { std: "docker" "start" "-a" "264d941c71b81c1bde317bb7182614c0ed3afd564f9f86c0055411c7668995b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "264d941c71b81c1bde317bb7182614c0ed3afd564f9f86c0055411c7668995b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "264d941c71b81c1bde317bb7182614c0ed3afd564f9f86c0055411c7668995b9", kill_on_drop: false }` [INFO] [stdout] 264d941c71b81c1bde317bb7182614c0ed3afd564f9f86c0055411c7668995b9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c53207fefe053e2fd3d64d7e656a973145d631a640a0cbfec4ad0b1164896de3 [INFO] running `Command { std: "docker" "start" "-a" "c53207fefe053e2fd3d64d7e656a973145d631a640a0cbfec4ad0b1164896de3", kill_on_drop: false }` [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking tempfile v3.23.0 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking tokio v1.48.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking freneng v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Checking tokio-test v0.4.4 [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern.rs:81:17 [INFO] [stdout] | [INFO] [stdout] 81 | / if token == "FD" || token == "FH" { [INFO] [stdout] 82 | | if let Ok(metadata) = fs::metadata(file_path).await { [INFO] [stdout] 83 | | if let Ok(mtime) = metadata.modified() { [INFO] [stdout] 84 | | let dt: DateTime = mtime.into(); [INFO] [stdout] ... | [INFO] [stdout] 94 | | } [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] 81 ~ if (token == "FD" || token == "FH") { [INFO] [stdout] 82 ~ && let Ok(metadata) = fs::metadata(file_path).await { [INFO] [stdout] 83 | if let Ok(mtime) = metadata.modified() { [INFO] [stdout] ... [INFO] [stdout] 92 | } [INFO] [stdout] 93 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern.rs:82:21 [INFO] [stdout] | [INFO] [stdout] 82 | / if let Ok(metadata) = fs::metadata(file_path).await { [INFO] [stdout] 83 | | if let Ok(mtime) = metadata.modified() { [INFO] [stdout] 84 | | let dt: DateTime = mtime.into(); [INFO] [stdout] 85 | | if token == "FD" { [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [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] 82 ~ if let Ok(metadata) = fs::metadata(file_path).await [INFO] [stdout] 83 ~ && let Ok(mtime) = metadata.modified() { [INFO] [stdout] 84 | let dt: DateTime = mtime.into(); [INFO] [stdout] ... [INFO] [stdout] 91 | continue; [INFO] [stdout] 92 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | / if chars.len() >= 3 && i < chars.len() - 3 [INFO] [stdout] 259 | | && chars[i] == '%' && (chars[i + 1] == 'R' || chars[i + 1] == 'r') [INFO] [stdout] 260 | | && chars[i + 2] == delimiter { [INFO] [stdout] 261 | | if let Some((old, new, end_pos)) = parse_pattern_args(&chars, i + 3, delimiter)? { [INFO] [stdout] ... | [INFO] [stdout] 267 | | } [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] 260 ~ && chars[i + 2] == delimiter [INFO] [stdout] 261 ~ && let Some((old, new, end_pos)) = parse_pattern_args(&chars, i + 3, delimiter)? { [INFO] [stdout] 262 | result = result.replace(&old, &new); [INFO] [stdout] ... [INFO] [stdout] 265 | break; [INFO] [stdout] 266 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern.rs:269:13 [INFO] [stdout] | [INFO] [stdout] 269 | / if chars.len() >= 3 && i < chars.len() - 3 [INFO] [stdout] 270 | | && chars[i] == '%' && (chars[i + 1] == 'X' || chars[i + 1] == 'x') [INFO] [stdout] 271 | | && chars[i + 2] == delimiter { [INFO] [stdout] 272 | | if let Some((pattern_str, new, end_pos)) = parse_pattern_args(&chars, i + 3, delimiter)? { [INFO] [stdout] ... | [INFO] [stdout] 279 | | } [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] 271 ~ && chars[i + 2] == delimiter [INFO] [stdout] 272 ~ && let Some((pattern_str, new, end_pos)) = parse_pattern_args(&chars, i + 3, delimiter)? { [INFO] [stdout] 273 | let re = Regex::new(&pattern_str)?; [INFO] [stdout] ... [INFO] [stdout] 277 | break; [INFO] [stdout] 278 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/pattern.rs:393:6 [INFO] [stdout] | [INFO] [stdout] 393 | ) -> Result, Box> { [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: this `if` statement can be collapsed [INFO] [stdout] --> src/validation.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | / if let Some(parent) = rename.new_path.parent() { [INFO] [stdout] 181 | | if check_directory_writable(parent).await.is_err() { [INFO] [stdout] 182 | | return Some(ValidationIssue::ParentNotWritable( [INFO] [stdout] 183 | | parent.display().to_string() [INFO] [stdout] ... | [INFO] [stdout] 186 | | } [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] 180 ~ if let Some(parent) = rename.new_path.parent() [INFO] [stdout] 181 ~ && check_directory_writable(parent).await.is_err() { [INFO] [stdout] 182 | return Some(ValidationIssue::ParentNotWritable( [INFO] [stdout] 183 | parent.display().to_string() [INFO] [stdout] 184 | )); [INFO] [stdout] 185 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> examples/test_validation_bug.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | let files = vec![ [INFO] [stdout] | _________________^ [INFO] [stdout] 12 | | frentui_dir.join("Cargo.toml"), [INFO] [stdout] 13 | | frentui_dir.join("README.md"), [INFO] [stdout] 14 | | frentui_dir.join(".gitignore"), [INFO] [stdout] 15 | | frentui_dir.join("Cargo.lock"), [INFO] [stdout] 16 | | frentui_dir.join("FIXES_SUMMARY.md"), [INFO] [stdout] 17 | | ]; [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] 11 ~ let files = [frentui_dir.join("Cargo.toml"), [INFO] [stdout] 12 + frentui_dir.join("README.md"), [INFO] [stdout] 13 + frentui_dir.join(".gitignore"), [INFO] [stdout] 14 + frentui_dir.join("Cargo.lock"), [INFO] [stdout] 15 ~ frentui_dir.join("FIXES_SUMMARY.md")]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/history_tests.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let _lock = DIR_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/history_tests.rs:54:35 [INFO] [stdout] | [INFO] [stdout] 54 | save_history(actions.clone()).await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] 55 | [INFO] [stdout] 56 | let loaded = load_history().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | clear_history().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] = note: `#[warn(clippy::await_holding_lock)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/history_tests.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let _lock = DIR_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/history_tests.rs:95:29 [INFO] [stdout] | [INFO] [stdout] 95 | let _ = clear_history().await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 96 | [INFO] [stdout] 97 | let loaded = load_history().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/history_tests.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | let _lock = DIR_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/history_tests.rs:135:27 [INFO] [stdout] | [INFO] [stdout] 135 | save_history(actions).await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] 136 | assert!(load_history().await.unwrap().is_some()); [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | [INFO] [stdout] 138 | clear_history().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | match load_history().await { [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/history_tests.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | let _lock = DIR_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/history_tests.rs:184:29 [INFO] [stdout] | [INFO] [stdout] 184 | let _ = clear_history().await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 185 | [INFO] [stdout] 186 | save_history(vec![]).await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | assert!(load_history().await.unwrap().is_none()); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/audit_tests.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let _guard = TEST_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/audit_tests.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | ).await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] = note: `#[warn(clippy::await_holding_lock)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/audit_tests.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let _guard = TEST_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/audit_tests.rs:73:7 [INFO] [stdout] | [INFO] [stdout] 73 | ).await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/audit_tests.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | let _guard = TEST_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/audit_tests.rs:96:36 [INFO] [stdout] | [INFO] [stdout] 96 | let entries = read_audit_log().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/audit_tests.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | let _guard = TEST_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/audit_tests.rs:119:11 [INFO] [stdout] | [INFO] [stdout] 119 | ).await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | let entries = read_audit_log().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/audit_tests.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | let _guard = TEST_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/audit_tests.rs:152:7 [INFO] [stdout] | [INFO] [stdout] 152 | ).await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | let entries = read_audit_log().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> examples/test_same_name_handling.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: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/audit_tests.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | let _guard = TEST_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/audit_tests.rs:183:7 [INFO] [stdout] | [INFO] [stdout] 183 | ).await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | let entries = read_audit_log().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/audit_tests.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | let _guard = TEST_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/audit_tests.rs:214:7 [INFO] [stdout] | [INFO] [stdout] 214 | ).await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | let clear_result = clear_audit_log().await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/audit_tests.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | let _guard = TEST_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/audit_tests.rs:247:11 [INFO] [stdout] | [INFO] [stdout] 247 | ).await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | let entries = read_audit_log().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/lib_tests.rs:83:42 [INFO] [stdout] | [INFO] [stdout] 83 | let result = engine.generate_preview(&[file.clone()], "%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:27:43 [INFO] [stdout] | [INFO] [stdout] 27 | let preview = engine.generate_preview(&[file.clone()], "%L%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/lib_tests.rs:100:42 [INFO] [stdout] | [INFO] [stdout] 100 | let result = engine.generate_preview(&[file.clone()], "%L%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/fs_ops_tests.rs:292:13 [INFO] [stdout] | [INFO] [stdout] 292 | assert!(!fs::metadata(&old_file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old_file).await.is_err()` [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 boolean expression can be simplified [INFO] [stdout] --> tests/fs_ops_tests.rs:380:13 [INFO] [stdout] | [INFO] [stdout] 380 | assert!(!fs::metadata(&old_file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old_file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:81:17 [INFO] [stdout] | [INFO] [stdout] 81 | assert!(!fs::metadata(&old_file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old_file).await.is_err()` [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 boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:102:43 [INFO] [stdout] | [INFO] [stdout] 102 | let preview = engine.generate_preview(&[file.clone()], "%L%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/fs_ops_tests.rs:421:17 [INFO] [stdout] | [INFO] [stdout] 421 | assert!(!fs::metadata(&old).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:126:43 [INFO] [stdout] | [INFO] [stdout] 126 | let preview = engine.generate_preview(&[file.clone()], "%N%R/backup/archive.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:150:43 [INFO] [stdout] | [INFO] [stdout] 150 | let preview = engine.generate_preview(&[file.clone()], "%N1-6.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:185:13 [INFO] [stdout] | [INFO] [stdout] 185 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:174:43 [INFO] [stdout] | [INFO] [stdout] 174 | let preview = engine.generate_preview(&[file.clone()], "%N.md").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:215:13 [INFO] [stdout] | [INFO] [stdout] 215 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:204:43 [INFO] [stdout] | [INFO] [stdout] 204 | let preview = engine.generate_preview(&[file.clone()], "%P_%N_%C.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:234:43 [INFO] [stdout] | [INFO] [stdout] 234 | let preview = engine.generate_preview(&[file.clone()], "%X/.//").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | assert!(!fs::metadata(&old_file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old_file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:267:43 [INFO] [stdout] | [INFO] [stdout] 267 | let preview = engine.generate_preview(&[old_file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&old_file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:24:42 [INFO] [stdout] | [INFO] [stdout] 24 | let result = engine.generate_preview(&[file.clone()], "%N").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:41:42 [INFO] [stdout] | [INFO] [stdout] 41 | let result = engine.generate_preview(&[file.clone()], "%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:59:42 [INFO] [stdout] | [INFO] [stdout] 59 | let result = engine.generate_preview(&[file.clone()], "%F").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:24:43 [INFO] [stdout] | [INFO] [stdout] 24 | let preview = engine.generate_preview(&[file.clone()], "%X/.//").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:130:42 [INFO] [stdout] | [INFO] [stdout] 130 | let result = engine.generate_preview(&[file.clone()], "%P_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:148:42 [INFO] [stdout] | [INFO] [stdout] 148 | let result = engine.generate_preview(&[file.clone()], "%D_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:71:43 [INFO] [stdout] | [INFO] [stdout] 71 | let preview = engine.generate_preview(&[old_file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&old_file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:169:42 [INFO] [stdout] | [INFO] [stdout] 169 | let result = engine.generate_preview(&[file.clone()], "%H_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | let preview = engine.generate_preview(&[old_file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&old_file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:189:42 [INFO] [stdout] | [INFO] [stdout] 189 | let result = engine.generate_preview(&[file.clone()], "%FD_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:209:42 [INFO] [stdout] | [INFO] [stdout] 209 | let result = engine.generate_preview(&[file.clone()], "%FH_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:232:42 [INFO] [stdout] | [INFO] [stdout] 232 | let result = engine.generate_preview(&[file.clone()], "%N1-6.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:249:42 [INFO] [stdout] | [INFO] [stdout] 249 | let result = engine.generate_preview(&[file.clone()], "%N5-.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:267:42 [INFO] [stdout] | [INFO] [stdout] 267 | let result = engine.generate_preview(&[file.clone()], "%N--8.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:285:42 [INFO] [stdout] | [INFO] [stdout] 285 | let result = engine.generate_preview(&[file.clone()], "%N3--4.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:306:42 [INFO] [stdout] | [INFO] [stdout] 306 | let result = engine.generate_preview(&[file.clone()], "%N.%E1-2").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:323:43 [INFO] [stdout] | [INFO] [stdout] 323 | let result2 = engine.generate_preview(&[file2.clone()], "%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:338:42 [INFO] [stdout] | [INFO] [stdout] 338 | let result = engine.generate_preview(&[file.clone()], "%L%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:355:42 [INFO] [stdout] | [INFO] [stdout] 355 | let result = engine.generate_preview(&[file.clone()], "%N%L.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:372:42 [INFO] [stdout] | [INFO] [stdout] 372 | let result = engine.generate_preview(&[file.clone()], "%U%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:390:42 [INFO] [stdout] | [INFO] [stdout] 390 | let result = engine.generate_preview(&[file.clone()], "%N%U.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:408:42 [INFO] [stdout] | [INFO] [stdout] 408 | let result = engine.generate_preview(&[file.clone()], "%T%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:426:42 [INFO] [stdout] | [INFO] [stdout] 426 | let result = engine.generate_preview(&[file.clone()], " %N %M.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:446:42 [INFO] [stdout] | [INFO] [stdout] 446 | let result = engine.generate_preview(&[file.clone()], "%N%R/backup/archive.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:466:42 [INFO] [stdout] | [INFO] [stdout] 466 | let result = engine.generate_preview(&[file.clone()], "%N%X/_\\d+/_.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:488:42 [INFO] [stdout] | [INFO] [stdout] 488 | let result = engine.generate_preview(&[file.clone()], "%P_%N_%C.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:507:42 [INFO] [stdout] | [INFO] [stdout] 507 | let result = engine.generate_preview(&[file.clone()], "%U%N%L.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:255:43 [INFO] [stdout] | [INFO] [stdout] 255 | let preview = engine.generate_preview(&[file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:275:43 [INFO] [stdout] | [INFO] [stdout] 275 | let preview = engine.generate_preview(&[valid_file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&valid_file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:339:43 [INFO] [stdout] | [INFO] [stdout] 339 | let preview = engine.generate_preview(&[file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern.rs:81:17 [INFO] [stdout] | [INFO] [stdout] 81 | / if token == "FD" || token == "FH" { [INFO] [stdout] 82 | | if let Ok(metadata) = fs::metadata(file_path).await { [INFO] [stdout] 83 | | if let Ok(mtime) = metadata.modified() { [INFO] [stdout] 84 | | let dt: DateTime = mtime.into(); [INFO] [stdout] ... | [INFO] [stdout] 94 | | } [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] 81 ~ if (token == "FD" || token == "FH") { [INFO] [stdout] 82 ~ && let Ok(metadata) = fs::metadata(file_path).await { [INFO] [stdout] 83 | if let Ok(mtime) = metadata.modified() { [INFO] [stdout] ... [INFO] [stdout] 92 | } [INFO] [stdout] 93 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern.rs:82:21 [INFO] [stdout] | [INFO] [stdout] 82 | / if let Ok(metadata) = fs::metadata(file_path).await { [INFO] [stdout] 83 | | if let Ok(mtime) = metadata.modified() { [INFO] [stdout] 84 | | let dt: DateTime = mtime.into(); [INFO] [stdout] 85 | | if token == "FD" { [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [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] 82 ~ if let Ok(metadata) = fs::metadata(file_path).await [INFO] [stdout] 83 ~ && let Ok(mtime) = metadata.modified() { [INFO] [stdout] 84 | let dt: DateTime = mtime.into(); [INFO] [stdout] ... [INFO] [stdout] 91 | continue; [INFO] [stdout] 92 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | / if chars.len() >= 3 && i < chars.len() - 3 [INFO] [stdout] 259 | | && chars[i] == '%' && (chars[i + 1] == 'R' || chars[i + 1] == 'r') [INFO] [stdout] 260 | | && chars[i + 2] == delimiter { [INFO] [stdout] 261 | | if let Some((old, new, end_pos)) = parse_pattern_args(&chars, i + 3, delimiter)? { [INFO] [stdout] ... | [INFO] [stdout] 267 | | } [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] 260 ~ && chars[i + 2] == delimiter [INFO] [stdout] 261 ~ && let Some((old, new, end_pos)) = parse_pattern_args(&chars, i + 3, delimiter)? { [INFO] [stdout] 262 | result = result.replace(&old, &new); [INFO] [stdout] ... [INFO] [stdout] 265 | break; [INFO] [stdout] 266 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern.rs:269:13 [INFO] [stdout] | [INFO] [stdout] 269 | / if chars.len() >= 3 && i < chars.len() - 3 [INFO] [stdout] 270 | | && chars[i] == '%' && (chars[i + 1] == 'X' || chars[i + 1] == 'x') [INFO] [stdout] 271 | | && chars[i + 2] == delimiter { [INFO] [stdout] 272 | | if let Some((pattern_str, new, end_pos)) = parse_pattern_args(&chars, i + 3, delimiter)? { [INFO] [stdout] ... | [INFO] [stdout] 279 | | } [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] 271 ~ && chars[i + 2] == delimiter [INFO] [stdout] 272 ~ && let Some((pattern_str, new, end_pos)) = parse_pattern_args(&chars, i + 3, delimiter)? { [INFO] [stdout] 273 | let re = Regex::new(&pattern_str)?; [INFO] [stdout] ... [INFO] [stdout] 277 | break; [INFO] [stdout] 278 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/pattern.rs:393:6 [INFO] [stdout] | [INFO] [stdout] 393 | ) -> Result, Box> { [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: this `if` statement can be collapsed [INFO] [stdout] --> src/validation.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | / if let Some(parent) = rename.new_path.parent() { [INFO] [stdout] 181 | | if check_directory_writable(parent).await.is_err() { [INFO] [stdout] 182 | | return Some(ValidationIssue::ParentNotWritable( [INFO] [stdout] 183 | | parent.display().to_string() [INFO] [stdout] ... | [INFO] [stdout] 186 | | } [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] 180 ~ if let Some(parent) = rename.new_path.parent() [INFO] [stdout] 181 ~ && check_directory_writable(parent).await.is_err() { [INFO] [stdout] 182 | return Some(ValidationIssue::ParentNotWritable( [INFO] [stdout] 183 | parent.display().to_string() [INFO] [stdout] 184 | )); [INFO] [stdout] 185 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/lib_tests.rs:83:42 [INFO] [stdout] | [INFO] [stdout] 83 | let result = engine.generate_preview(&[file.clone()], "%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/lib_tests.rs:100:42 [INFO] [stdout] | [INFO] [stdout] 100 | let result = engine.generate_preview(&[file.clone()], "%L%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:24:42 [INFO] [stdout] | [INFO] [stdout] 24 | let result = engine.generate_preview(&[file.clone()], "%N").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:41:42 [INFO] [stdout] | [INFO] [stdout] 41 | let result = engine.generate_preview(&[file.clone()], "%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:59:42 [INFO] [stdout] | [INFO] [stdout] 59 | let result = engine.generate_preview(&[file.clone()], "%F").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:130:42 [INFO] [stdout] | [INFO] [stdout] 130 | let result = engine.generate_preview(&[file.clone()], "%P_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:148:42 [INFO] [stdout] | [INFO] [stdout] 148 | let result = engine.generate_preview(&[file.clone()], "%D_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:169:42 [INFO] [stdout] | [INFO] [stdout] 169 | let result = engine.generate_preview(&[file.clone()], "%H_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:189:42 [INFO] [stdout] | [INFO] [stdout] 189 | let result = engine.generate_preview(&[file.clone()], "%FD_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:209:42 [INFO] [stdout] | [INFO] [stdout] 209 | let result = engine.generate_preview(&[file.clone()], "%FH_%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:232:42 [INFO] [stdout] | [INFO] [stdout] 232 | let result = engine.generate_preview(&[file.clone()], "%N1-6.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:249:42 [INFO] [stdout] | [INFO] [stdout] 249 | let result = engine.generate_preview(&[file.clone()], "%N5-.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:267:42 [INFO] [stdout] | [INFO] [stdout] 267 | let result = engine.generate_preview(&[file.clone()], "%N--8.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:285:42 [INFO] [stdout] | [INFO] [stdout] 285 | let result = engine.generate_preview(&[file.clone()], "%N3--4.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:306:42 [INFO] [stdout] | [INFO] [stdout] 306 | let result = engine.generate_preview(&[file.clone()], "%N.%E1-2").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:323:43 [INFO] [stdout] | [INFO] [stdout] 323 | let result2 = engine.generate_preview(&[file2.clone()], "%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:338:42 [INFO] [stdout] | [INFO] [stdout] 338 | let result = engine.generate_preview(&[file.clone()], "%L%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:355:42 [INFO] [stdout] | [INFO] [stdout] 355 | let result = engine.generate_preview(&[file.clone()], "%N%L.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:372:42 [INFO] [stdout] | [INFO] [stdout] 372 | let result = engine.generate_preview(&[file.clone()], "%U%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:390:42 [INFO] [stdout] | [INFO] [stdout] 390 | let result = engine.generate_preview(&[file.clone()], "%N%U.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:408:42 [INFO] [stdout] | [INFO] [stdout] 408 | let result = engine.generate_preview(&[file.clone()], "%T%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:426:42 [INFO] [stdout] | [INFO] [stdout] 426 | let result = engine.generate_preview(&[file.clone()], " %N %M.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:446:42 [INFO] [stdout] | [INFO] [stdout] 446 | let result = engine.generate_preview(&[file.clone()], "%N%R/backup/archive.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:466:42 [INFO] [stdout] | [INFO] [stdout] 466 | let result = engine.generate_preview(&[file.clone()], "%N%X/_\\d+/_.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:488:42 [INFO] [stdout] | [INFO] [stdout] 488 | let result = engine.generate_preview(&[file.clone()], "%P_%N_%C.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/pattern_tests.rs:507:42 [INFO] [stdout] | [INFO] [stdout] 507 | let result = engine.generate_preview(&[file.clone()], "%U%N%L.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/fs_ops_tests.rs:292:13 [INFO] [stdout] | [INFO] [stdout] 292 | assert!(!fs::metadata(&old_file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old_file).await.is_err()` [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 boolean expression can be simplified [INFO] [stdout] --> tests/fs_ops_tests.rs:380:13 [INFO] [stdout] | [INFO] [stdout] 380 | assert!(!fs::metadata(&old_file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old_file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/fs_ops_tests.rs:421:17 [INFO] [stdout] | [INFO] [stdout] 421 | assert!(!fs::metadata(&old).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/history_tests.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let _lock = DIR_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/history_tests.rs:54:35 [INFO] [stdout] | [INFO] [stdout] 54 | save_history(actions.clone()).await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] 55 | [INFO] [stdout] 56 | let loaded = load_history().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | clear_history().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] = note: `#[warn(clippy::await_holding_lock)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/history_tests.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let _lock = DIR_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/history_tests.rs:95:29 [INFO] [stdout] | [INFO] [stdout] 95 | let _ = clear_history().await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 96 | [INFO] [stdout] 97 | let loaded = load_history().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/history_tests.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | let _lock = DIR_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/history_tests.rs:135:27 [INFO] [stdout] | [INFO] [stdout] 135 | save_history(actions).await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] 136 | assert!(load_history().await.unwrap().is_some()); [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | [INFO] [stdout] 138 | clear_history().await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | match load_history().await { [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/history_tests.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | let _lock = DIR_MUTEX.lock().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/history_tests.rs:184:29 [INFO] [stdout] | [INFO] [stdout] 184 | let _ = clear_history().await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 185 | [INFO] [stdout] 186 | save_history(vec![]).await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | assert!(load_history().await.unwrap().is_none()); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:24:43 [INFO] [stdout] | [INFO] [stdout] 24 | let preview = engine.generate_preview(&[file.clone()], "%X/.//").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:71:43 [INFO] [stdout] | [INFO] [stdout] 71 | let preview = engine.generate_preview(&[old_file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&old_file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | let preview = engine.generate_preview(&[old_file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&old_file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:255:43 [INFO] [stdout] | [INFO] [stdout] 255 | let preview = engine.generate_preview(&[file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:275:43 [INFO] [stdout] | [INFO] [stdout] 275 | let preview = engine.generate_preview(&[valid_file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&valid_file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/validation_tests.rs:339:43 [INFO] [stdout] | [INFO] [stdout] 339 | let preview = engine.generate_preview(&[file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:27:43 [INFO] [stdout] | [INFO] [stdout] 27 | let preview = engine.generate_preview(&[file.clone()], "%L%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:81:17 [INFO] [stdout] | [INFO] [stdout] 81 | assert!(!fs::metadata(&old_file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old_file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:102:43 [INFO] [stdout] | [INFO] [stdout] 102 | let preview = engine.generate_preview(&[file.clone()], "%L%N.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:126:43 [INFO] [stdout] | [INFO] [stdout] 126 | let preview = engine.generate_preview(&[file.clone()], "%N%R/backup/archive.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:150:43 [INFO] [stdout] | [INFO] [stdout] 150 | let preview = engine.generate_preview(&[file.clone()], "%N1-6.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:185:13 [INFO] [stdout] | [INFO] [stdout] 185 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:174:43 [INFO] [stdout] | [INFO] [stdout] 174 | let preview = engine.generate_preview(&[file.clone()], "%N.md").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:215:13 [INFO] [stdout] | [INFO] [stdout] 215 | assert!(!fs::metadata(&file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:204:43 [INFO] [stdout] | [INFO] [stdout] 204 | let preview = engine.generate_preview(&[file.clone()], "%P_%N_%C.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:234:43 [INFO] [stdout] | [INFO] [stdout] 234 | let preview = engine.generate_preview(&[file.clone()], "%X/.//").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/integration_tests.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | assert!(!fs::metadata(&old_file).await.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&old_file).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> tests/integration_tests.rs:267:43 [INFO] [stdout] | [INFO] [stdout] 267 | let preview = engine.generate_preview(&[old_file.clone()], "new.%E").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&old_file)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.88s [INFO] running `Command { std: "docker" "inspect" "c53207fefe053e2fd3d64d7e656a973145d631a640a0cbfec4ad0b1164896de3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c53207fefe053e2fd3d64d7e656a973145d631a640a0cbfec4ad0b1164896de3", kill_on_drop: false }` [INFO] [stdout] c53207fefe053e2fd3d64d7e656a973145d631a640a0cbfec4ad0b1164896de3