[INFO] crate mpris 1.1.0 is already in cache [INFO] extracting crate mpris 1.1.0 into work/ex/clippy-test-run/sources/stable/reg/mpris/1.1.0 [INFO] extracting crate mpris 1.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mpris/1.1.0 [INFO] validating manifest of mpris-1.1.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of mpris-1.1.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing mpris-1.1.0 [INFO] finished frobbing mpris-1.1.0 [INFO] frobbed toml for mpris-1.1.0 written to work/ex/clippy-test-run/sources/stable/reg/mpris/1.1.0/Cargo.toml [INFO] started frobbing mpris-1.1.0 [INFO] finished frobbing mpris-1.1.0 [INFO] frobbed toml for mpris-1.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mpris/1.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting mpris-1.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/mpris/1.1.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] b9f9c719addd361973531d8c51cbbc8e44d3733381d2039448c07f6798ee711d [INFO] running `"docker" "start" "-a" "b9f9c719addd361973531d8c51cbbc8e44d3733381d2039448c07f6798ee711d"` [INFO] [stderr] Compiling darling_core v0.4.0 [INFO] [stderr] Compiling enum-kinds v0.4.1 [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.0 (/opt/crater/workdir) [INFO] [stderr] warning: lint name `clippy` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/generated/mod.rs:2:10 [INFO] [stderr] | [INFO] [stderr] 2 | #![allow(clippy)] [INFO] [stderr] | ^^^^^^ help: change it to: `clippy::all` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: lint name `clippy` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/generated/mod.rs:2:10 [INFO] [stderr] | [INFO] [stderr] 2 | #![allow(clippy)] [INFO] [stderr] | ^^^^^^ help: change it to: `clippy::all` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | bus_name: bus_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `bus_name` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | bus_name: bus_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `bus_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | unique_name: unique_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unique_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | identity: identity, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `identity` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | unique_name: unique_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unique_name` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | timeout_ms: timeout_ms, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timeout_ms` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | identity: identity, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `identity` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/player.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | timeout_ms: timeout_ms, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timeout_ms` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pooled_connection.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/progress.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | player: player, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `player` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pooled_connection.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/progress.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | player: player, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `player` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: lint name `clippy` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/generated/mod.rs:2:10 [INFO] [stderr] | [INFO] [stderr] 2 | #![allow(clippy)] [INFO] [stderr] | ^^^^^^ help: change it to: `clippy::all` [INFO] [stderr] [INFO] [stderr] warning: lint name `clippy` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/generated/mod.rs:2:10 [INFO] [stderr] | [INFO] [stderr] 2 | #![allow(clippy)] [INFO] [stderr] | ^^^^^^ help: change it to: `clippy::all` [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/extensions.rs:40:29 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!(duration.as_millis(), 5543); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unstable_name_collisions)] on by default [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_millis(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/extensions.rs:46:29 [INFO] [stderr] | [INFO] [stderr] 46 | assert_eq!(duration.as_micros(), 5_543_210); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_micros(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/player.rs:153:62 [INFO] [stderr] | [INFO] [stderr] 153 | self.set_position_in_microseconds(track_id, position.as_micros()) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unstable_name_collisions)] on by default [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_micros(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/player.rs:339:26 [INFO] [stderr] | [INFO] [stderr] 339 | self.seek(offset.as_micros() as i64) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_micros(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/player.rs:346:28 [INFO] [stderr] | [INFO] [stderr] 346 | self.seek(-(offset.as_micros() as i64)) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_micros(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/pooled_connection.rs:104:28 [INFO] [stderr] | [INFO] [stderr] 104 | .map(|d| d.as_millis()) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_millis(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/progress.rs:268:51 [INFO] [stderr] | [INFO] [stderr] 268 | PlaybackStatus::Playing => self.age().as_millis() as f64 * self.rate, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_millis(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/player.rs:153:62 [INFO] [stderr] | [INFO] [stderr] 153 | self.set_position_in_microseconds(track_id, position.as_micros()) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_micros(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/extensions.rs:18:43 [INFO] [stderr] | [INFO] [stderr] 18 | self.as_secs() * 1000 + u64::from(self.subsec_nanos() / 1000 / 1000) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.subsec_micros()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/extensions.rs:22:50 [INFO] [stderr] | [INFO] [stderr] 22 | self.as_secs() * 1000 * 1000 + u64::from(self.subsec_nanos() / 1000) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.subsec_micros()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/event.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | TrackChanged(Metadata), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 37 | TrackChanged(Box), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/event.rs:117:12 [INFO] [stderr] | [INFO] [stderr] 117 | if self.last_progress.current_volume() != volume { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.last_progress.current_volume() - volume).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/event.rs:117:12 [INFO] [stderr] | [INFO] [stderr] 117 | if self.last_progress.current_volume() != volume { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/player.rs:339:26 [INFO] [stderr] | [INFO] [stderr] 339 | self.seek(offset.as_micros() as i64) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/event.rs:124:12 [INFO] [stderr] | [INFO] [stderr] 124 | if self.last_progress.playback_rate() != rate { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.last_progress.playback_rate() - rate).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/event.rs:124:12 [INFO] [stderr] | [INFO] [stderr] 124 | if self.last_progress.playback_rate() != rate { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_micros(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/player.rs:346:28 [INFO] [stderr] | [INFO] [stderr] 346 | self.seek(-(offset.as_micros() as i64)) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_micros(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/find.rs:123:12 [INFO] [stderr] | [INFO] [stderr] 123 | Ok(names [INFO] [stderr] | ____________^ [INFO] [stderr] 124 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `names` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | auto_rating: self.auto_rating.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.auto_rating` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | disc_number: self.disc_number.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.disc_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:64:37 [INFO] [stderr] | [INFO] [stderr] 64 | length_in_microseconds: self.length_in_microseconds.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.length_in_microseconds` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:66:27 [INFO] [stderr] | [INFO] [stderr] 66 | track_number: self.track_number.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.track_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / self.length_in_microseconds [INFO] [stderr] 144 | | .clone() [INFO] [stderr] | |____________________^ help: try removing the `clone` call: `self.length_in_microseconds` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/pooled_connection.rs:104:28 [INFO] [stderr] | [INFO] [stderr] 104 | .map(|d| d.as_millis()) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_millis(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/player.rs:128:18 [INFO] [stderr] | [INFO] [stderr] 128 | .map(|us| Duration::from_micros_ext(us)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Duration::from_micros_ext` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/player.rs:251:47 [INFO] [stderr] | [INFO] [stderr] 251 | val.into_map().unwrap_or_else(|| HashMap::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: a method with this name may be added to the standard library in the future [INFO] [stderr] --> src/progress.rs:268:51 [INFO] [stderr] | [INFO] [stderr] 268 | PlaybackStatus::Playing => self.age().as_millis() as f64 * self.rate, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: once this method is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stderr] = note: for more information, see issue #48919 [INFO] [stderr] = help: call with fully qualified syntax `extensions::DurationExtensions::as_millis(...)` to keep using the current method [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/pooled_connection.rs:110:36 [INFO] [stderr] | [INFO] [stderr] 110 | if let Some(message) = self.connection [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 111 | | .incoming(ms_left as u32) [INFO] [stderr] 112 | | .filter(PooledConnection::is_watched_message) [INFO] [stderr] 113 | | .next() [INFO] [stderr] | |_______________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(PooledConnection::is_watched_message).next()` with `find(PooledConnection::is_watched_message)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/pooled_connection.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | / message [INFO] [stderr] 170 | | .sender() [INFO] [stderr] 171 | | .map(|unique_name| self.mark_bus_as_updated((*unique_name).to_owned())); [INFO] [stderr] | |_______________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 169 | if let Some(unique_name) = message [INFO] [stderr] 170 | .sender() { self.mark_bus_as_updated((*unique_name).to_owned()) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/progress.rs:242:9 [INFO] [stderr] | [INFO] [stderr] 242 | self.position.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.position` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:124:19 [INFO] [stderr] | [INFO] [stderr] 124 | fn dbus_value(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `mpris`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/extensions.rs:18:43 [INFO] [stderr] | [INFO] [stderr] 18 | self.as_secs() * 1000 + u64::from(self.subsec_nanos() / 1000 / 1000) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.subsec_micros()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/extensions.rs:22:50 [INFO] [stderr] | [INFO] [stderr] 22 | self.as_secs() * 1000 * 1000 + u64::from(self.subsec_nanos() / 1000) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.subsec_micros()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/event.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | TrackChanged(Metadata), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 37 | TrackChanged(Box), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/event.rs:117:12 [INFO] [stderr] | [INFO] [stderr] 117 | if self.last_progress.current_volume() != volume { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.last_progress.current_volume() - volume).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/event.rs:117:12 [INFO] [stderr] | [INFO] [stderr] 117 | if self.last_progress.current_volume() != volume { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/event.rs:124:12 [INFO] [stderr] | [INFO] [stderr] 124 | if self.last_progress.playback_rate() != rate { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.last_progress.playback_rate() - rate).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/event.rs:124:12 [INFO] [stderr] | [INFO] [stderr] 124 | if self.last_progress.playback_rate() != rate { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/find.rs:123:12 [INFO] [stderr] | [INFO] [stderr] 123 | Ok(names [INFO] [stderr] | ____________^ [INFO] [stderr] 124 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `names` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | auto_rating: self.auto_rating.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.auto_rating` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | disc_number: self.disc_number.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.disc_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:64:37 [INFO] [stderr] | [INFO] [stderr] 64 | length_in_microseconds: self.length_in_microseconds.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.length_in_microseconds` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:66:27 [INFO] [stderr] | [INFO] [stderr] 66 | track_number: self.track_number.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.track_number` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/metadata/mod.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / self.length_in_microseconds [INFO] [stderr] 144 | | .clone() [INFO] [stderr] | |____________________^ help: try removing the `clone` call: `self.length_in_microseconds` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/player.rs:128:18 [INFO] [stderr] | [INFO] [stderr] 128 | .map(|us| Duration::from_micros_ext(us)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Duration::from_micros_ext` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/player.rs:251:47 [INFO] [stderr] | [INFO] [stderr] 251 | val.into_map().unwrap_or_else(|| HashMap::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/pooled_connection.rs:110:36 [INFO] [stderr] | [INFO] [stderr] 110 | if let Some(message) = self.connection [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 111 | | .incoming(ms_left as u32) [INFO] [stderr] 112 | | .filter(PooledConnection::is_watched_message) [INFO] [stderr] 113 | | .next() [INFO] [stderr] | |_______________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(PooledConnection::is_watched_message).next()` with `find(PooledConnection::is_watched_message)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/pooled_connection.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | / message [INFO] [stderr] 170 | | .sender() [INFO] [stderr] 171 | | .map(|unique_name| self.mark_bus_as_updated((*unique_name).to_owned())); [INFO] [stderr] | |_______________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 169 | if let Some(unique_name) = message [INFO] [stderr] 170 | .sender() { self.mark_bus_as_updated((*unique_name).to_owned()) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/progress.rs:242:9 [INFO] [stderr] | [INFO] [stderr] 242 | self.position.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.position` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:124:19 [INFO] [stderr] | [INFO] [stderr] 124 | fn dbus_value(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `mpris`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b9f9c719addd361973531d8c51cbbc8e44d3733381d2039448c07f6798ee711d"` [INFO] running `"docker" "rm" "-f" "b9f9c719addd361973531d8c51cbbc8e44d3733381d2039448c07f6798ee711d"` [INFO] [stdout] b9f9c719addd361973531d8c51cbbc8e44d3733381d2039448c07f6798ee711d