[INFO] fetching crate lyricer 1.0.3... [INFO] linting lyricer-1.0.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate lyricer 1.0.3 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate lyricer 1.0.3 [INFO] finished tweaking crates.io crate lyricer 1.0.3 [INFO] tweaked toml for crates.io crate lyricer 1.0.3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate lyricer 1.0.3 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 lyricer 1.0.3 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 urlencoding v1.1.1 [INFO] [stderr] Downloaded mpris v1.1.2 [INFO] [stderr] Downloaded from_variants_impl v0.3.0 [INFO] [stderr] Downloaded pretty_env_logger v0.4.0 [INFO] [stderr] Downloaded from_variants v0.3.0 [INFO] [stderr] Downloaded proc-macro2 v0.3.8 [INFO] [stderr] Downloaded quote v0.5.2 [INFO] [stderr] Downloaded derive_is_enum_variant v0.1.1 [INFO] [stderr] Downloaded darling_macro v0.4.0 [INFO] [stderr] Downloaded darling v0.4.0 [INFO] [stderr] Downloaded libdbus-sys v0.2.1 [INFO] [stderr] Downloaded rustc-demangle v0.1.18 [INFO] [stderr] Downloaded darling_core v0.4.0 [INFO] [stderr] Downloaded proc-macro2 v0.2.3 [INFO] [stderr] Downloaded addr2line v0.14.0 [INFO] [stderr] Downloaded miniz_oxide v0.4.3 [INFO] [stderr] Downloaded dbus v0.6.5 [INFO] [stderr] Downloaded backtrace v0.3.54 [INFO] [stderr] Downloaded syn v0.12.15 [INFO] [stderr] Downloaded syn v0.13.11 [INFO] [stderr] Downloaded quote v0.4.2 [INFO] [stderr] Downloaded object v0.22.0 [INFO] [stderr] Downloaded enum-kinds v0.4.1 [INFO] [stderr] Downloaded syn v1.0.48 [INFO] [stderr] Downloaded libc v0.2.80 [INFO] [stderr] Downloaded gimli v0.23.0 [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] 4c2ee5f4299cb0f6444504a763b8abdb11b9fb799e0e893f26026be3afb6e086 [INFO] running `Command { std: "docker" "start" "-a" "4c2ee5f4299cb0f6444504a763b8abdb11b9fb799e0e893f26026be3afb6e086", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4c2ee5f4299cb0f6444504a763b8abdb11b9fb799e0e893f26026be3afb6e086", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4c2ee5f4299cb0f6444504a763b8abdb11b9fb799e0e893f26026be3afb6e086", kill_on_drop: false }` [INFO] [stdout] 4c2ee5f4299cb0f6444504a763b8abdb11b9fb799e0e893f26026be3afb6e086 [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] 26639c8b7033949af621dfe55bc11ca0c7de8f85780281f91bbb02016f32e439 [INFO] running `Command { std: "docker" "start" "-a" "26639c8b7033949af621dfe55bc11ca0c7de8f85780281f91bbb02016f32e439", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.80 [INFO] [stderr] Compiling proc-macro2 v0.3.8 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling syn v1.0.48 [INFO] [stderr] Compiling proc-macro2 v0.2.3 [INFO] [stderr] Checking gimli v0.23.0 [INFO] [stderr] Compiling unicode-xid v0.0.4 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Checking adler v0.2.3 [INFO] [stderr] Compiling miniz_oxide v0.4.3 [INFO] [stderr] Compiling libdbus-sys v0.2.1 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Compiling unicode-segmentation v1.6.0 [INFO] [stderr] Checking object v0.22.0 [INFO] [stderr] Compiling error-chain v0.10.0 [INFO] [stderr] Checking rustc-demangle v0.1.18 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Compiling quote v0.3.15 [INFO] [stderr] Checking regex-syntax v0.6.21 [INFO] [stderr] Compiling heck v0.3.1 [INFO] [stderr] Compiling quote v0.4.2 [INFO] [stderr] Compiling quote v0.5.2 [INFO] [stderr] Checking aho-corasick v0.7.15 [INFO] [stderr] Compiling syn v0.13.11 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Checking termcolor v1.1.0 [INFO] [stderr] Checking urlencoding v1.1.1 [INFO] [stderr] Compiling syn v0.12.15 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking dbus v0.6.5 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling derive_is_enum_variant v0.1.1 [INFO] [stderr] Checking addr2line v0.14.0 [INFO] [stderr] Compiling enum-kinds v0.4.1 [INFO] [stderr] Checking regex v1.4.2 [INFO] [stderr] Checking backtrace v0.3.54 [INFO] [stderr] Checking env_logger v0.7.1 [INFO] [stderr] Checking pretty_env_logger v0.4.0 [INFO] [stderr] Compiling darling_core v0.4.0 [INFO] [stderr] Compiling synstructure v0.12.4 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Compiling darling_macro v0.4.0 [INFO] [stderr] Compiling darling v0.4.0 [INFO] [stderr] Compiling from_variants_impl v0.3.0 [INFO] [stderr] Checking from_variants v0.3.0 [INFO] [stderr] Checking mpris v1.1.2 [INFO] [stderr] Checking lyricer v1.0.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `metadata` is never read [INFO] [stdout] --> src/lyric.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Lyric { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 3 | pub metadata: std::collections::HashMap, Box>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lyric` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lyric.rs:36:16 [INFO] [stdout] | [INFO] [stdout] 36 | if !metadata_parse_completed [INFO] [stdout] | ________________^ [INFO] [stdout] 37 | | && !(i[..i.find(']').unwrap()].contains('.') [INFO] [stdout] 38 | | && i[..i.find(']').unwrap()].contains(':')) [INFO] [stdout] | |_______________________________________________________________^ help: try: `!(metadata_parse_completed || i[..i.find(']').unwrap()].contains('.') && i[..i.find(']').unwrap()].contains(':'))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/lyric.rs:97:18 [INFO] [stdout] | [INFO] [stdout] 97 | for x in raw_string.chars().into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `raw_string.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/lyric.rs:111:24 [INFO] [stdout] | [INFO] [stdout] 111 | let duration = std::mem::replace(raw_duration, std::time::Duration::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(raw_duration)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | &std::path::Path::new("/tmp/lyrics"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `std::path::Path::new("/tmp/lyrics")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:120:26 [INFO] [stdout] | [INFO] [stdout] 120 | let small_duration = if lyrics.is_err() { true } else { false }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `lyrics.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/main.rs:152:13 [INFO] [stdout] | [INFO] [stdout] 152 | / duration [INFO] [stdout] 153 | | .checked_sub(current_duration) [INFO] [stdout] 154 | | .map(|x| std::thread::sleep(x)); [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 152 ~ if let Some(x) = duration [INFO] [stdout] 153 + .checked_sub(current_duration) { std::thread::sleep(x) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:154:22 [INFO] [stdout] | [INFO] [stdout] 154 | .map(|x| std::thread::sleep(x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `std::thread::sleep` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | &format!("{}", output(&lyric, formatted_metadata)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("{}", output(&lyric, formatted_metadata))` [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: useless use of `format!` [INFO] [stdout] --> src/main.rs:178:14 [INFO] [stdout] | [INFO] [stdout] 178 | &format!("{}", output(&lyric, formatted_metadata)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `output(&lyric, formatted_metadata).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/main.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | / audio_ending [INFO] [stdout] 184 | | .checked_sub(current_duration) [INFO] [stdout] 185 | | .map(|x| std::thread::sleep(x)); [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 183 ~ if let Some(x) = audio_ending [INFO] [stdout] 184 + .checked_sub(current_duration) { std::thread::sleep(x) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:185:18 [INFO] [stdout] | [INFO] [stdout] 185 | .map(|x| std::thread::sleep(x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `std::thread::sleep` [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: field `metadata` is never read [INFO] [stdout] --> src/lyric.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Lyric { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 3 | pub metadata: std::collections::HashMap, Box>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lyric` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lyric.rs:36:16 [INFO] [stdout] | [INFO] [stdout] 36 | if !metadata_parse_completed [INFO] [stdout] | ________________^ [INFO] [stdout] 37 | | && !(i[..i.find(']').unwrap()].contains('.') [INFO] [stdout] 38 | | && i[..i.find(']').unwrap()].contains(':')) [INFO] [stdout] | |_______________________________________________________________^ help: try: `!(metadata_parse_completed || i[..i.find(']').unwrap()].contains('.') && i[..i.find(']').unwrap()].contains(':'))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Chars<'_>` [INFO] [stdout] --> src/lyric.rs:97:18 [INFO] [stdout] | [INFO] [stdout] 97 | for x in raw_string.chars().into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `raw_string.chars()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/lyric.rs:111:24 [INFO] [stdout] | [INFO] [stdout] 111 | let duration = std::mem::replace(raw_duration, std::time::Duration::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(raw_duration)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | &std::path::Path::new("/tmp/lyrics"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `std::path::Path::new("/tmp/lyrics")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:120:26 [INFO] [stdout] | [INFO] [stdout] 120 | let small_duration = if lyrics.is_err() { true } else { false }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `lyrics.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/main.rs:152:13 [INFO] [stdout] | [INFO] [stdout] 152 | / duration [INFO] [stdout] 153 | | .checked_sub(current_duration) [INFO] [stdout] 154 | | .map(|x| std::thread::sleep(x)); [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 152 ~ if let Some(x) = duration [INFO] [stdout] 153 + .checked_sub(current_duration) { std::thread::sleep(x) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:154:22 [INFO] [stdout] | [INFO] [stdout] 154 | .map(|x| std::thread::sleep(x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `std::thread::sleep` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | &format!("{}", output(&lyric, formatted_metadata)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("{}", output(&lyric, formatted_metadata))` [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: useless use of `format!` [INFO] [stdout] --> src/main.rs:178:14 [INFO] [stdout] | [INFO] [stdout] 178 | &format!("{}", output(&lyric, formatted_metadata)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `output(&lyric, formatted_metadata).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/main.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | / audio_ending [INFO] [stdout] 184 | | .checked_sub(current_duration) [INFO] [stdout] 185 | | .map(|x| std::thread::sleep(x)); [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 183 ~ if let Some(x) = audio_ending [INFO] [stdout] 184 + .checked_sub(current_duration) { std::thread::sleep(x) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:185:18 [INFO] [stdout] | [INFO] [stdout] 185 | .map(|x| std::thread::sleep(x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `std::thread::sleep` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.70s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: syn v0.12.15, syn v0.13.11 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "26639c8b7033949af621dfe55bc11ca0c7de8f85780281f91bbb02016f32e439", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "26639c8b7033949af621dfe55bc11ca0c7de8f85780281f91bbb02016f32e439", kill_on_drop: false }` [INFO] [stdout] 26639c8b7033949af621dfe55bc11ca0c7de8f85780281f91bbb02016f32e439